Commit in reactos on MAIN
include/wine/urlmon.h+2263added 1.1
doc/README.WINE+1-11.24 -> 1.25
lib/urlmon/sec_mgr.c+455added 1.1
          /winehq2ros.patch[empty]added 1.1
          /.cvsignore+111.1 -> 1.2
          /Makefile.in+2-11.1 -> 1.2
          /umon.c+125-2061.2 -> 1.3
          /urlmon.spec+3-31.1 -> 1.2
          /urlmon_main.c+188-101.1 -> 1.2
          /urlmon_main.h+41.1 -> 1.2
          /urlmon.h-16231.1 removed
lib/uuid/uuid.c-21.3 -> 1.4
+3052-1846
3 added + 1 removed + 8 modified, total 12 files
Reimport of urlmon from Wine

reactos/include/wine
urlmon.h added at 1.1
diff -N urlmon.h
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ urlmon.h	22 Dec 2004 23:15:14 -0000	1.1
@@ -0,0 +1,2263 @@
+/*** Autogenerated by WIDL 0.1 from urlmon.idl - Do not edit ***/
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifndef __WIDL_URLMON_H
+#define __WIDL_URLMON_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <objidl.h>
+#include <oleidl.h>
+#include <servprov.h>
+#ifndef __IBinding_FWD_DEFINED__
+#define __IBinding_FWD_DEFINED__
+typedef struct IBinding IBinding;
+#endif
+
+typedef IBinding *LPBINDING;
+
+/*****************************************************************************
+ * IBinding interface
+ */
+#ifndef __IBinding_INTERFACE_DEFINED__
+#define __IBinding_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IBinding, 0x79eac9c0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IBinding : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Abort(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Suspend(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Resume(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetPriority(
+        LONG nPriority) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetPriority(
+        LONG* pnPriority) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetBindResult(
+        CLSID* pclsidProtocol,
+        DWORD* pdwResult,
+        LPOLESTR* pszResult,
+        DWORD* pdwReserved) = 0;
+
+};
+#else
+typedef struct IBindingVtbl IBindingVtbl;
+struct IBinding {
+    const IBindingVtbl* lpVtbl;
+};
+struct IBindingVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IBinding* This,
+        REFIID riid,
+        void** ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IBinding* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IBinding* This);
+
+    /*** IBinding methods ***/
+    HRESULT (STDMETHODCALLTYPE *Abort)(
+        IBinding* This);
+
+    HRESULT (STDMETHODCALLTYPE *Suspend)(
+        IBinding* This);
+
+    HRESULT (STDMETHODCALLTYPE *Resume)(
+        IBinding* This);
+
+    HRESULT (STDMETHODCALLTYPE *SetPriority)(
+        IBinding* This,
+        LONG nPriority);
+
+    HRESULT (STDMETHODCALLTYPE *GetPriority)(
+        IBinding* This,
+        LONG* pnPriority);
+
+    HRESULT (STDMETHODCALLTYPE *GetBindResult)(
+        IBinding* This,
+        CLSID* pclsidProtocol,
+        DWORD* pdwResult,
+        LPOLESTR* pszResult,
+        DWORD* pdwReserved);
+
+    END_INTERFACE
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IBinding_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IBinding_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IBinding_Release(p) (p)->lpVtbl->Release(p)
+/*** IBinding methods ***/
+#define IBinding_Abort(p) (p)->lpVtbl->Abort(p)
+#define IBinding_Suspend(p) (p)->lpVtbl->Suspend(p)
+#define IBinding_Resume(p) (p)->lpVtbl->Resume(p)
+#define IBinding_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
+#define IBinding_GetPriority(p,a) (p)->lpVtbl->GetPriority(p,a)
+#define IBinding_GetBindResult(p,a,b,c,d) (p)->lpVtbl->GetBindResult(p,a,b,c,d)
+#endif
+
+#endif
+
+HRESULT CALLBACK IBinding_Abort_Proxy(
+    IBinding* This);
+void __RPC_STUB IBinding_Abort_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IBinding_Suspend_Proxy(
+    IBinding* This);
+void __RPC_STUB IBinding_Suspend_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IBinding_Resume_Proxy(
+    IBinding* This);
+void __RPC_STUB IBinding_Resume_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IBinding_SetPriority_Proxy(
+    IBinding* This,
+    LONG nPriority);
+void __RPC_STUB IBinding_SetPriority_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IBinding_GetPriority_Proxy(
+    IBinding* This,
+    LONG* pnPriority);
+void __RPC_STUB IBinding_GetPriority_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IBinding_RemoteGetBindResult_Proxy(
+    IBinding* This,
+    CLSID* pclsidProtocol,
+    DWORD* pdwResult,
+    LPOLESTR* pszResult,
+    DWORD dwReserved);
+void __RPC_STUB IBinding_RemoteGetBindResult_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IBinding_GetBindResult_Proxy(
+    IBinding* This,
+    CLSID* pclsidProtocol,
+    DWORD* pdwResult,
+    LPOLESTR* pszResult,
+    DWORD* pdwReserved);
+HRESULT __RPC_STUB IBinding_GetBindResult_Stub(
+    IBinding* This,
+    CLSID* pclsidProtocol,
+    DWORD* pdwResult,
+    LPOLESTR* pszResult,
+    DWORD dwReserved);
+
+#endif  /* __IBinding_INTERFACE_DEFINED__ */
+
+#ifndef __IBindStatusCallback_FWD_DEFINED__
+#define __IBindStatusCallback_FWD_DEFINED__
+typedef struct IBindStatusCallback IBindStatusCallback;
+#endif
+
+typedef IBindStatusCallback *LPBINDSTATUSCALLBACK;
+
+typedef enum {
+    BINDF_ASYNCHRONOUS = 0x1,
+    BINDF_ASYNCSTORAGE = 0x2,
+    BINDF_NOPROGRESSIVERENDERING = 0x4,
+    BINDF_OFFLINEOPERATION = 0x8,
+    BINDF_GETNEWESTVERSION = 0x10,
+    BINDF_NOWRITECACHE = 0x20,
+    BINDF_NEEDFILE = 0x40,
+    BINDF_PULLDATA = 0x80,
+    BINDF_IGNORESECURITYPROBLEM = 0x100,
+    BINDF_RESYNCHRONIZE = 0x200,
+    BINDF_HYPERLINK = 0x400,
+    BINDF_NO_UI = 0x800,
+    BINDF_SILENTOPERATION = 0x1000,
+    BINDF_PRAGMA_NO_CACHE = 0x2000,
+    BINDF_GETCLASSOBJECT = 0x4000,
+    BINDF_RESERVED_1 = 0x8000,
+    BINDF_FREE_THREADED = 0x10000,
+    BINDF_DIRECT_READ = 0x20000,
+    BINDF_FORMS_SUBMIT = 0x40000,
+    BINDF_GETFROMCACHE_IF_NET_FAIL = 0x80000,
+    BINDF_FROMURLMON = 0x100000,
+    BINDF_FWD_BACK = 0x200000,
+    BINDF_PREFERDEFAULTHANDLER = 0x400000,
+    BINDF_ENFORCERESTRICTED = 0x800000
+} BINDF;
+
+typedef struct _tagBINDINFO {
+    ULONG cbSize;
+    LPWSTR szExtraInfo;
+    STGMEDIUM stgmedData;
+    DWORD grfBindInfoF;
+    DWORD dwBindVerb;
+    LPWSTR szCustomVerb;
+    DWORD cbStgmedData;
+    DWORD dwOptions;
+    DWORD dwOptionsFlags;
+    DWORD dwCodePage;
+    SECURITY_ATTRIBUTES securityAttributes;
+    IID iid;
+    IUnknown *pUnk;
+    DWORD dwReserved;
+} BINDINFO;
+
+typedef struct _REMSECURITY_ATTRIBUTES {
+    DWORD nLength;
+    DWORD lpSecurityDescriptor;
+    BOOL bInheritHandle;
+} REMSECURITY_ATTRIBUTES, *PREMSECURITY_ATTRIBUTES, *LPREMSECURITY_ATTRIBUTES;
+
+typedef struct _tagRemBINDINFO {
+    ULONG cbSize;
+    LPWSTR szExtraInfo;
+    DWORD grfBindInfoF;
+    DWORD dwBindVerb;
+    LPWSTR szCustomVerb;
+    DWORD cbstgmedData;
+    DWORD dwOptions;
+    DWORD dwOptionsFlags;
+    DWORD dwCodePage;
+    REMSECURITY_ATTRIBUTES securityAttributes;
+    IID iid;
+    IUnknown *pUnk;
+    DWORD dwReserved;
+} RemBINDINFO;
+
+typedef struct tagRemFORMATETC {
+    DWORD cfFormat;
+    DWORD ptd;
+    DWORD dwAspect;
+    LONG lindex;
+    DWORD tymed;
+} RemFORMATETC, *LPREMFORMATETC;
+
+typedef enum {
+    BSCF_FIRSTDATANOTIFICATION = 0x1,
+    BSCF_INTERMEDIATEDATANOTIFICATION = 0x2,
+    BSCF_LASTDATANOTIFICATION = 0x4,
+    BSCF_DATAFULLYAVAILABLE = 0x8,
+    BSCF_AVAILABLEDATASIZEUNKNOWN = 0x10
+} BSCF;
+
+typedef enum BINDSTATUS {
+    BINDSTATUS_FINDINGRESOURCE = 1,
+    BINDSTATUS_CONNECTING,
+    BINDSTATUS_REDIRECTING,
+    BINDSTATUS_BEGINDOWNLOADDATA,
+    BINDSTATUS_DOWNLOADINGDATA,
+    BINDSTATUS_ENDDOWNLOADDATA,
+    BINDSTATUS_BEGINDOWNLOADCOMPONENTS,
+    BINDSTATUS_INSTALLINGCOMPONENTS,
+    BINDSTATUS_ENDDOWNLOADCOMPONENTS,
+    BINDSTATUS_USINGCACHEDCOPY,
+    BINDSTATUS_SENDINGREQUEST,
+    BINDSTATUS_CLASSIDAVAILABLE,
+    BINDSTATUS_MIMETYPEAVAILABLE,
+    BINDSTATUS_CACHEFILENAMEAVAILABLE,
+    BINDSTATUS_BEGINSYNCOPERATION,
+    BINDSTATUS_ENDSYNCOPERATION,
+    BINDSTATUS_BEGINUPLOADDATA,
+    BINDSTATUS_UPLOADINGDATA,
+    BINDSTATUS_ENDUPLOADINGDATA,
+    BINDSTATUS_PROTOCOLCLASSID,
+    BINDSTATUS_ENCODING,
+    BINDSTATUS_VERFIEDMIMETYPEAVAILABLE,
+    BINDSTATUS_CLASSINSTALLLOCATION,
+    BINDSTATUS_DECODING,
+    BINDSTATUS_LOADINGMIMEHANDLER,
+    BINDSTATUS_CONTENTDISPOSITIONATTACH,
+    BINDSTATUS_FILTERREPORTMIMETYPE,
+    BINDSTATUS_CLSIDCANINSTANTIATE,
+    BINDSTATUS_IUNKNOWNAVAILABLE,
+    BINDSTATUS_DIRECTBIND,
+    BINDSTATUS_RAWMIMETYPE,
+    BINDSTATUS_PROXYDETECTING,
+    BINDSTATUS_ACCEPTRANGES,
+    BINDSTATUS_COOKIE_SENT,
+    BINDSTATUS_COMPACT_POLICY_RECEIVED,
+    BINDSTATUS_COOKIE_SUPPRESSED,
+    BINDSTATUS_COOKIE_STATE_UNKNOWN,
+    BINDSTATUS_COOKIE_STATE_ACCEPT,
+    BINDSTATUS_COOKIE_STATE_REJECT,
+    BINDSTATUS_COOKIE_STATE_PROMPT,
+    BINDSTATUS_COOKIE_STATE_LEASH,
+    BINDSTATUS_COOKIE_STATE_DOWNGRADE,
+    BINDSTATUS_POLICY_HREF,
+    BINDSTATUS_P3P_HEADER,
+    BINDSTATUS_SESSION_COOKIE_RECEIVED,
+    BINDSTATUS_PERSISTENT_COOKIE_RECEIVED,
+    BINDSTATUS_SESSION_COOKIES_ALLOWED,
+    BINDSTATUS_CACHECONTROL
+} BINDSTATUS;
+
+/*****************************************************************************
+ * IBindStatusCallback interface
+ */
+#ifndef __IBindStatusCallback_INTERFACE_DEFINED__
+#define __IBindStatusCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IBindStatusCallback, 0x79eac9c1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IBindStatusCallback : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE OnStartBinding(
+        DWORD dwReserved,
+        IBinding* pib) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetPriority(
+        LONG* pnPriority) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnLowResource(
+        DWORD reserved) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnProgress(
+        ULONG ulProgress,
+        ULONG ulProgressMax,
+        ULONG ulStatusCode,
+        LPCWSTR szStatusText) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnStopBinding(
+        HRESULT hresult,
+        LPCWSTR szError) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetBindInfo(
+        DWORD* grfBINDF,
+        BINDINFO* pbindinfo) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnDataAvailable(
+        DWORD grfBSCF,
+        DWORD dwSize,
+        FORMATETC* pformatetc,
+        STGMEDIUM* pstgmed) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnObjectAvailable(
+        REFIID riid,
+        IUnknown* punk) = 0;
+
+};
+#else
+typedef struct IBindStatusCallbackVtbl IBindStatusCallbackVtbl;
+struct IBindStatusCallback {
+    const IBindStatusCallbackVtbl* lpVtbl;
+};
+struct IBindStatusCallbackVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IBindStatusCallback* This,
+        REFIID riid,
+        void** ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IBindStatusCallback* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IBindStatusCallback* This);
+
+    /*** IBindStatusCallback methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnStartBinding)(
+        IBindStatusCallback* This,
+        DWORD dwReserved,
+        IBinding* pib);
+
+    HRESULT (STDMETHODCALLTYPE *GetPriority)(
+        IBindStatusCallback* This,
+        LONG* pnPriority);
+
+    HRESULT (STDMETHODCALLTYPE *OnLowResource)(
+        IBindStatusCallback* This,
+        DWORD reserved);
+
+    HRESULT (STDMETHODCALLTYPE *OnProgress)(
+        IBindStatusCallback* This,
+        ULONG ulProgress,
+        ULONG ulProgressMax,
+        ULONG ulStatusCode,
+        LPCWSTR szStatusText);
+
+    HRESULT (STDMETHODCALLTYPE *OnStopBinding)(
+        IBindStatusCallback* This,
+        HRESULT hresult,
+        LPCWSTR szError);
+
+    HRESULT (STDMETHODCALLTYPE *GetBindInfo)(
+        IBindStatusCallback* This,
+        DWORD* grfBINDF,
+        BINDINFO* pbindinfo);
+
+    HRESULT (STDMETHODCALLTYPE *OnDataAvailable)(
+        IBindStatusCallback* This,
+        DWORD grfBSCF,
+        DWORD dwSize,
+        FORMATETC* pformatetc,
+        STGMEDIUM* pstgmed);
+
+    HRESULT (STDMETHODCALLTYPE *OnObjectAvailable)(
+        IBindStatusCallback* This,
+        REFIID riid,
+        IUnknown* punk);
+
+    END_INTERFACE
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IBindStatusCallback_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IBindStatusCallback_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IBindStatusCallback_Release(p) (p)->lpVtbl->Release(p)
+/*** IBindStatusCallback methods ***/
+#define IBindStatusCallback_OnStartBinding(p,a,b) (p)->lpVtbl->OnStartBinding(p,a,b)
+#define IBindStatusCallback_GetPriority(p,a) (p)->lpVtbl->GetPriority(p,a)
+#define IBindStatusCallback_OnLowResource(p,a) (p)->lpVtbl->OnLowResource(p,a)
+#define IBindStatusCallback_OnProgress(p,a,b,c,d) (p)->lpVtbl->OnProgress(p,a,b,c,d)
+#define IBindStatusCallback_OnStopBinding(p,a,b) (p)->lpVtbl->OnStopBinding(p,a,b)
+#define IBindStatusCallback_GetBindInfo(p,a,b) (p)->lpVtbl->GetBindInfo(p,a,b)
+#define IBindStatusCallback_OnDataAvailable(p,a,b,c,d) (p)->lpVtbl->OnDataAvailable(p,a,b,c,d)
+#define IBindStatusCallback_OnObjectAvailable(p,a,b) (p)->lpVtbl->OnObjectAvailable(p,a,b)
+#endif
+
+#endif
+
+HRESULT CALLBACK IBindStatusCallback_OnStartBinding_Proxy(
+    IBindStatusCallback* This,
+    DWORD dwReserved,
+    IBinding* pib);
+void __RPC_STUB IBindStatusCallback_OnStartBinding_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindStatusCallback_GetPriority_Proxy(
+    IBindStatusCallback* This,
+    LONG* pnPriority);
+void __RPC_STUB IBindStatusCallback_GetPriority_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindStatusCallback_OnLowResource_Proxy(
+    IBindStatusCallback* This,
+    DWORD reserved);
+void __RPC_STUB IBindStatusCallback_OnLowResource_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindStatusCallback_OnProgress_Proxy(
+    IBindStatusCallback* This,
+    ULONG ulProgress,
+    ULONG ulProgressMax,
+    ULONG ulStatusCode,
+    LPCWSTR szStatusText);
+void __RPC_STUB IBindStatusCallback_OnProgress_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindStatusCallback_OnStopBinding_Proxy(
+    IBindStatusCallback* This,
+    HRESULT hresult,
+    LPCWSTR szError);
+void __RPC_STUB IBindStatusCallback_OnStopBinding_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindStatusCallback_RemoteGetBindInfo_Proxy(
+    IBindStatusCallback* This,
+    DWORD* grfBINDF,
+    RemBINDINFO* pbindinfo,
+    RemSTGMEDIUM* pstgmed);
+void __RPC_STUB IBindStatusCallback_RemoteGetBindInfo_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindStatusCallback_GetBindInfo_Proxy(
+    IBindStatusCallback* This,
+    DWORD* grfBINDF,
+    BINDINFO* pbindinfo);
+HRESULT __RPC_STUB IBindStatusCallback_GetBindInfo_Stub(
+    IBindStatusCallback* This,
+    DWORD* grfBINDF,
+    RemBINDINFO* pbindinfo,
+    RemSTGMEDIUM* pstgmed);
+HRESULT CALLBACK IBindStatusCallback_RemoteOnDataAvailable_Proxy(
+    IBindStatusCallback* This,
+    DWORD grfBSCF,
+    DWORD dwSize,
+    RemFORMATETC* pformatetc,
+    RemSTGMEDIUM* pstgmed);
+void __RPC_STUB IBindStatusCallback_RemoteOnDataAvailable_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindStatusCallback_OnDataAvailable_Proxy(
+    IBindStatusCallback* This,
+    DWORD grfBSCF,
+    DWORD dwSize,
+    FORMATETC* pformatetc,
+    STGMEDIUM* pstgmed);
+HRESULT __RPC_STUB IBindStatusCallback_OnDataAvailable_Stub(
+    IBindStatusCallback* This,
+    DWORD grfBSCF,
+    DWORD dwSize,
+    RemFORMATETC* pformatetc,
+    RemSTGMEDIUM* pstgmed);
+HRESULT CALLBACK IBindStatusCallback_OnObjectAvailable_Proxy(
+    IBindStatusCallback* This,
+    REFIID riid,
+    IUnknown* punk);
+void __RPC_STUB IBindStatusCallback_OnObjectAvailable_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IBindStatusCallback_INTERFACE_DEFINED__ */
+
+#define SID_IBindHost IID_IBindHost
+#define SID_SBindHost IID_IBindHost
+#ifndef __IBindHost_FWD_DEFINED__
+#define __IBindHost_FWD_DEFINED__
+typedef struct IBindHost IBindHost;
+#endif
+
+typedef IBindHost *LPBINDHOST;
+
+/*****************************************************************************
+ * IBindHost interface
+ */
+#ifndef __IBindHost_INTERFACE_DEFINED__
+#define __IBindHost_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IBindHost, 0xfc4801a1, 0x2ba9, 0x11cf, 0xa2,0x29, 0x00,0xaa,0x00,0x3d,0x73,0x52);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IBindHost : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE CreateMoniker(
+        LPOLESTR szName,
+        IBindCtx* pBC,
+        IMoniker** ppmk,
+        DWORD dwReserved) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE MonikerBindToStorage(
+        IMoniker* pMk,
+        IBindCtx* pBC,
+        IBindStatusCallback* pBSC,
+        REFIID riid,
+        void** ppvObj) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE MonikerBindToObject(
+        IMoniker* pMk,
+        IBindCtx* pBC,
+        IBindStatusCallback* pBSC,
+        REFIID riid,
+        void** ppvObj) = 0;
+
+};
+#else
+typedef struct IBindHostVtbl IBindHostVtbl;
+struct IBindHost {
+    const IBindHostVtbl* lpVtbl;
+};
+struct IBindHostVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IBindHost* This,
+        REFIID riid,
+        void** ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IBindHost* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IBindHost* This);
+
+    /*** IBindHost methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreateMoniker)(
+        IBindHost* This,
+        LPOLESTR szName,
+        IBindCtx* pBC,
+        IMoniker** ppmk,
+        DWORD dwReserved);
+
+    HRESULT (STDMETHODCALLTYPE *MonikerBindToStorage)(
+        IBindHost* This,
+        IMoniker* pMk,
+        IBindCtx* pBC,
+        IBindStatusCallback* pBSC,
+        REFIID riid,
+        void** ppvObj);
+
+    HRESULT (STDMETHODCALLTYPE *MonikerBindToObject)(
+        IBindHost* This,
+        IMoniker* pMk,
+        IBindCtx* pBC,
+        IBindStatusCallback* pBSC,
+        REFIID riid,
+        void** ppvObj);
+
+    END_INTERFACE
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IBindHost_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IBindHost_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IBindHost_Release(p) (p)->lpVtbl->Release(p)
+/*** IBindHost methods ***/
+#define IBindHost_CreateMoniker(p,a,b,c,d) (p)->lpVtbl->CreateMoniker(p,a,b,c,d)
+#define IBindHost_MonikerBindToStorage(p,a,b,c,d,e) (p)->lpVtbl->MonikerBindToStorage(p,a,b,c,d,e)
+#define IBindHost_MonikerBindToObject(p,a,b,c,d,e) (p)->lpVtbl->MonikerBindToObject(p,a,b,c,d,e)
+#endif
+
+#endif
+
+HRESULT CALLBACK IBindHost_CreateMoniker_Proxy(
+    IBindHost* This,
+    LPOLESTR szName,
+    IBindCtx* pBC,
+    IMoniker** ppmk,
+    DWORD dwReserved);
+void __RPC_STUB IBindHost_CreateMoniker_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindHost_RemoteMonikerBindToStorage_Proxy(
+    IBindHost* This,
+    IMoniker* pMk,
+    IBindCtx* pBC,
+    IBindStatusCallback* pBSC,
+    REFIID riid,
+    IUnknown** ppvObj);
+void __RPC_STUB IBindHost_RemoteMonikerBindToStorage_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindHost_MonikerBindToStorage_Proxy(
+    IBindHost* This,
+    IMoniker* pMk,
+    IBindCtx* pBC,
+    IBindStatusCallback* pBSC,
+    REFIID riid,
+    void** ppvObj);
+HRESULT __RPC_STUB IBindHost_MonikerBindToStorage_Stub(
+    IBindHost* This,
+    IMoniker* pMk,
+    IBindCtx* pBC,
+    IBindStatusCallback* pBSC,
+    REFIID riid,
+    IUnknown** ppvObj);
+HRESULT CALLBACK IBindHost_RemoteMonikerBindToObject_Proxy(
+    IBindHost* This,
+    IMoniker* pMk,
+    IBindCtx* pBC,
+    IBindStatusCallback* pBSC,
+    REFIID riid,
+    IUnknown** ppvObj);
+void __RPC_STUB IBindHost_RemoteMonikerBindToObject_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IBindHost_MonikerBindToObject_Proxy(
+    IBindHost* This,
+    IMoniker* pMk,
+    IBindCtx* pBC,
+    IBindStatusCallback* pBSC,
+    REFIID riid,
+    void** ppvObj);
+HRESULT __RPC_STUB IBindHost_MonikerBindToObject_Stub(
+    IBindHost* This,
+    IMoniker* pMk,
+    IBindCtx* pBC,
+    IBindStatusCallback* pBSC,
+    REFIID riid,
+    IUnknown** ppvObj);
+
+#endif  /* __IBindHost_INTERFACE_DEFINED__ */
+
+#ifndef __IWinInetInfo_FWD_DEFINED__
+#define __IWinInetInfo_FWD_DEFINED__
+typedef struct IWinInetInfo IWinInetInfo;
+#endif
+
+typedef IWinInetInfo *LPWININETINFO;
+
+/*****************************************************************************
+ * IWinInetInfo interface
+ */
+#ifndef __IWinInetInfo_INTERFACE_DEFINED__
+#define __IWinInetInfo_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWinInetInfo, 0x79eac9d6, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IWinInetInfo : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE QueryOption(
+        DWORD dwOption,
+        LPVOID pBuffer,
+        DWORD* pcbBuf) = 0;
+
+};
+#else
+typedef struct IWinInetInfoVtbl IWinInetInfoVtbl;
+struct IWinInetInfo {
+    const IWinInetInfoVtbl* lpVtbl;
+};
+struct IWinInetInfoVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWinInetInfo* This,
+        REFIID riid,
+        void** ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWinInetInfo* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWinInetInfo* This);
+
+    /*** IWinInetInfo methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryOption)(
+        IWinInetInfo* This,
+        DWORD dwOption,
+        LPVOID pBuffer,
+        DWORD* pcbBuf);
+
+    END_INTERFACE
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IWinInetInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IWinInetInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IWinInetInfo_Release(p) (p)->lpVtbl->Release(p)
+/*** IWinInetInfo methods ***/
+#define IWinInetInfo_QueryOption(p,a,b,c) (p)->lpVtbl->QueryOption(p,a,b,c)
+#endif
+
+#endif
+
+HRESULT CALLBACK IWinInetInfo_RemoteQueryOption_Proxy(
+    IWinInetInfo* This,
+    DWORD dwOption,
+    BYTE* pBuffer,
+    DWORD* pcbBuf);
+void __RPC_STUB IWinInetInfo_RemoteQueryOption_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IWinInetInfo_QueryOption_Proxy(
+    IWinInetInfo* This,
+    DWORD dwOption,
+    LPVOID pBuffer,
+    DWORD* pcbBuf);
+HRESULT __RPC_STUB IWinInetInfo_QueryOption_Stub(
+    IWinInetInfo* This,
+    DWORD dwOption,
+    BYTE* pBuffer,
+    DWORD* pcbBuf);
+
+#endif  /* __IWinInetInfo_INTERFACE_DEFINED__ */
+
+#ifndef __IWinInetHttpInfo_FWD_DEFINED__
+#define __IWinInetHttpInfo_FWD_DEFINED__
+typedef struct IWinInetHttpInfo IWinInetHttpInfo;
+#endif
+
+typedef IWinInetHttpInfo *LPWININETHTTPINFO;
+
+/*****************************************************************************
+ * IWinInetHttpInfo interface
+ */
+#ifndef __IWinInetHttpInfo_INTERFACE_DEFINED__
+#define __IWinInetHttpInfo_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWinInetHttpInfo, 0x79eac9d8, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IWinInetHttpInfo : public IWinInetInfo
+{
+    virtual HRESULT STDMETHODCALLTYPE QueryInfo(
+        DWORD dwOption,
+        LPVOID pBuffer,
+        DWORD* pcbBuf,
+        DWORD* pdwFlags,
+        DWORD* pdwReserved) = 0;
+
+};
+#else
+typedef struct IWinInetHttpInfoVtbl IWinInetHttpInfoVtbl;
+struct IWinInetHttpInfo {
+    const IWinInetHttpInfoVtbl* lpVtbl;
+};
+struct IWinInetHttpInfoVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWinInetHttpInfo* This,
+        REFIID riid,
+        void** ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWinInetHttpInfo* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWinInetHttpInfo* This);
+
+    /*** IWinInetInfo methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryOption)(
+        IWinInetHttpInfo* This,
+        DWORD dwOption,
+        LPVOID pBuffer,
+        DWORD* pcbBuf);
+
+    /*** IWinInetHttpInfo methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInfo)(
+        IWinInetHttpInfo* This,
+        DWORD dwOption,
+        LPVOID pBuffer,
+        DWORD* pcbBuf,
+        DWORD* pdwFlags,
+        DWORD* pdwReserved);
+
+    END_INTERFACE
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IWinInetHttpInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IWinInetHttpInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IWinInetHttpInfo_Release(p) (p)->lpVtbl->Release(p)
+/*** IWinInetInfo methods ***/
+#define IWinInetHttpInfo_QueryOption(p,a,b,c) (p)->lpVtbl->QueryOption(p,a,b,c)
+/*** IWinInetHttpInfo methods ***/
+#define IWinInetHttpInfo_QueryInfo(p,a,b,c,d,e) (p)->lpVtbl->QueryInfo(p,a,b,c,d,e)
+#endif
+
+#endif
+
+HRESULT CALLBACK IWinInetHttpInfo_RemoteQueryInfo_Proxy(
+    IWinInetHttpInfo* This,
+    DWORD dwOption,
+    BYTE* pBuffer,
+    DWORD* pcbBuf,
+    DWORD* pdwFlags,
+    DWORD* pdwReserved);
+void __RPC_STUB IWinInetHttpInfo_RemoteQueryInfo_Stub(
+    struct IRpcStubBuffer* This,
+    struct IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IWinInetHttpInfo_QueryInfo_Proxy(
+    IWinInetHttpInfo* This,
+    DWORD dwOption,
+    LPVOID pBuffer,
+    DWORD* pcbBuf,
+    DWORD* pdwFlags,
+    DWORD* pdwReserved);
+HRESULT __RPC_STUB IWinInetHttpInfo_QueryInfo_Stub(
+    IWinInetHttpInfo* This,
+    DWORD dwOption,
+    BYTE* pBuffer,
+    DWORD* pcbBuf,
+    DWORD* pdwFlags,
+    DWORD* pdwReserved);
+
+#endif  /* __IWinInetHttpInfo_INTERFACE_DEFINED__ */
+
+#ifndef __IPersistMoniker_FWD_DEFINED__
+#define __IPersistMoniker_FWD_DEFINED__
+typedef struct IPersistMoniker IPersistMoniker;
+#endif
+
+typedef IPersistMoniker *LPPERSISTMONIKER;
+
+/*****************************************************************************
+ * IPersistMoniker interface
+ */
+#ifndef __IPersistMoniker_INTERFACE_DEFINED__
+#define __IPersistMoniker_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IPersistMoniker, 0x79eac9c9, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+struct IPersistMoniker : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetClassID(
+        CLSID* pClassID) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsDirty(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Load(
+        BOOL fFullyAvailable,
+        IMoniker* pimkName,
+        LPBC pibc,
+        DWORD grfMode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Save(
+        IMoniker* pimkName,
+        LPBC pbc,
+        BOOL fRemember) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
+        IMoniker* pimkName,
+        LPBC pibc) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCurMoniker(
+        IMoniker** ppimkName) = 0;
+
+};
+#else
+typedef struct IPersistMonikerVtbl IPersistMonikerVtbl;
+struct IPersistMoniker {
+    const IPersistMonikerVtbl* lpVtbl;
+};
+struct IPersistMonikerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IPersistMoniker* This,
+        REFIID riid,
+        void** ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IPersistMoniker* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IPersistMoniker* This);
+
+    /*** IPersistMoniker methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetClassID)(
+        IPersistMoniker* This,
+        CLSID* pClassID);
+
+    HRESULT (STDMETHODCALLTYPE *IsDirty)(
+        IPersistMoniker* This);
+
+    HRESULT (STDMETHODCALLTYPE *Load)(
+        IPersistMoniker* This,
+        BOOL fFullyAvailable,
+        IMoniker* pimkName,
+        LPBC pibc,
+        DWORD grfMode);
+
+    HRESULT (STDMETHODCALLTYPE *Save)(
+        IPersistMoniker* This,
+        IMoniker* pimkName,
+        LPBC pbc,
+        BOOL fRemember);
+
+    HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
+        IPersistMoniker* This,
+        IMoniker* pimkName,
+        LPBC pibc);
+
+    HRESULT (STDMETHODCALLTYPE *GetCurMoniker)(
+        IPersistMoniker* This,
+        IMoniker** ppimkName);
[truncated at 1000 lines; 1267 more skipped]

reactos/doc
README.WINE 1.24 -> 1.25
diff -u -r1.24 -r1.25
--- README.WINE	18 Dec 2004 22:28:42 -0000	1.24
+++ README.WINE	22 Dec 2004 23:15:14 -0000	1.25
@@ -61,7 +61,7 @@
 reactos/lib/shlwapi             # Synced to Wine-20041201
 reactos/lib/twain		# Out of sync
 reactos/lib/unicode		# Dependancy on this lib needs to be removed. Synced to Wine-20041201
-reactos/lib/urlmon		# Out of sync
+reactos/lib/urlmon		# Synced to Wine-20041201
 reactos/lib/version		# Out of sync
 reactos/lib/wininet		# Out of sync
 reactos/lib/winmm		# Synced to Wine-20041201

reactos/lib/urlmon
sec_mgr.c added at 1.1
diff -N sec_mgr.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ sec_mgr.c	22 Dec 2004 23:15:14 -0000	1.1
@@ -0,0 +1,455 @@
+/*
+ * Internet Security and Zone Manager
+ *
+ * Copyright (c) 2004 Huw D M Davies
+ * Copyright 2004 Jacek Caban
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#include <stdarg.h>
+#include <stdio.h>
+
+#define COBJMACROS
+
+#include "windef.h"
+#include "winbase.h"
+#include "winuser.h"
+#include "wine/debug.h"
+#include "ole2.h"
+#include "wine/unicode.h"
+#include "urlmon.h"
+#include "urlmon_main.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(urlmon);
+
+/***********************************************************************
+ *           InternetSecurityManager implementation
+ *
+ */
+typedef struct SecManagerImpl{
+
+    IInternetSecurityManagerVtbl*  lpvtbl1;  /* VTable relative to the IInternetSecurityManager interface.*/
+
+    ULONG ref; /* reference counter for this object */
+
+} SecManagerImpl;
+
+static HRESULT WINAPI SecManagerImpl_QueryInterface(IInternetSecurityManager* iface,REFIID riid,void** ppvObject)
+{
+    SecManagerImpl *This = (SecManagerImpl *)iface;
+
+    TRACE("(%p)->(%s,%p)\n",This,debugstr_guid(riid),ppvObject);
+
+    /* Perform a sanity check on the parameters.*/
+    if ( (This==0) || (ppvObject==0) )
+	return E_INVALIDARG;
+
+    /* Initialize the return parameter */
+    *ppvObject = 0;
+
+    /* Compare the riid with the interface IDs implemented by this object.*/
+    if (IsEqualIID(&IID_IUnknown, riid) ||
+        IsEqualIID(&IID_IInternetSecurityManager, riid))
+        *ppvObject = iface;
+
+    /* Check that we obtained an interface.*/
+    if ((*ppvObject)==0)
+        return E_NOINTERFACE;
+
+    /* Query Interface always increases the reference count by one when it is successful */
+    IInternetSecurityManager_AddRef(iface);
+
+    return S_OK;
+}
+
+static ULONG WINAPI SecManagerImpl_AddRef(IInternetSecurityManager* iface)
+{
+    SecManagerImpl *This = (SecManagerImpl *)iface;
+
+    TRACE("(%p)\n",This);
+
+    return InterlockedIncrement(&This->ref);
+}
+
+static ULONG WINAPI SecManagerImpl_Release(IInternetSecurityManager* iface)
+{
+    SecManagerImpl *This = (SecManagerImpl *)iface;
+    ULONG ref;
+    TRACE("(%p)\n",This);
+
+    ref = InterlockedDecrement(&This->ref);
+
+    /* destroy the object if there's no more reference on it */
+    if (ref==0){
+        HeapFree(GetProcessHeap(),0,This);
+    }
+    return ref;
+}
+
+static HRESULT WINAPI SecManagerImpl_SetSecuritySite(IInternetSecurityManager *iface,
+                                                     IInternetSecurityMgrSite *pSite)
+{
+    FIXME("(%p)->(%p)\n", iface, pSite);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI SecManagerImpl_GetSecuritySite(IInternetSecurityManager *iface,
+                                                     IInternetSecurityMgrSite **ppSite)
+{
+    FIXME("(%p)->( %p)\n", iface, ppSite);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI SecManagerImpl_MapUrlToZone(IInternetSecurityManager *iface,
+                                                  LPCWSTR pwszUrl, DWORD *pdwZone,
+                                                  DWORD dwFlags)
+{
+    FIXME("(%p)->(%s %p %08lx)\n", iface, debugstr_w(pwszUrl), pdwZone, dwFlags);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI SecManagerImpl_GetSecurityId(IInternetSecurityManager *iface, 
+                                                   LPCWSTR pwszUrl,
+                                                   BYTE *pbSecurityId, DWORD *pcbSecurityId,
+                                                   DWORD dwReserved)
+{
+    FIXME("(%p)->(%s %p %p %08lx)\n", iface, debugstr_w(pwszUrl), pbSecurityId, pcbSecurityId,
+          dwReserved);
+    return E_NOTIMPL;
+}
+
+
+static HRESULT WINAPI SecManagerImpl_ProcessUrlAction(IInternetSecurityManager *iface,
+                                                      LPCWSTR pwszUrl, DWORD dwAction,
+                                                      BYTE *pPolicy, DWORD cbPolicy,
+                                                      BYTE *pContext, DWORD cbContext,
+                                                      DWORD dwFlags, DWORD dwReserved)
+{
+    FIXME("(%p)->(%s %08lx %p %08lx %p %08lx %08lx %08lx)\n", iface, debugstr_w(pwszUrl), dwAction,
+          pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved);
+    return E_NOTIMPL;
+}
+                                               
+
+static HRESULT WINAPI SecManagerImpl_QueryCustomPolicy(IInternetSecurityManager *iface,
+                                                       LPCWSTR pwszUrl, REFGUID guidKey,
+                                                       BYTE **ppPolicy, DWORD *pcbPolicy,
+                                                       BYTE *pContext, DWORD cbContext,
+                                                       DWORD dwReserved)
+{
+    FIXME("(%p)->(%s %s %p %p %p %08lx %08lx )\n", iface, debugstr_w(pwszUrl), debugstr_guid(guidKey),
+          ppPolicy, pcbPolicy, pContext, cbContext, dwReserved);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI SecManagerImpl_SetZoneMapping(IInternetSecurityManager *iface,
+                                                    DWORD dwZone, LPCWSTR pwszPattern, DWORD dwFlags)
+{
+    FIXME("(%p)->(%08lx %s %08lx)\n", iface, dwZone, debugstr_w(pwszPattern),dwFlags);
+    return E_NOTIMPL;
+}
+
+static HRESULT WINAPI SecManagerImpl_GetZoneMappings(IInternetSecurityManager *iface,
+                                                     DWORD dwZone, IEnumString **ppenumString, DWORD dwFlags)
+{
+    FIXME("(%p)->(%08lx %p %08lx)\n", iface, dwZone, ppenumString,dwFlags);
+    return E_NOTIMPL;
+}
+
+static IInternetSecurityManagerVtbl VT_SecManagerImpl =
+{
+    SecManagerImpl_QueryInterface,
+    SecManagerImpl_AddRef,
+    SecManagerImpl_Release,
+    SecManagerImpl_SetSecuritySite,
+    SecManagerImpl_GetSecuritySite,
+    SecManagerImpl_MapUrlToZone,
+    SecManagerImpl_GetSecurityId,
+    SecManagerImpl_ProcessUrlAction,
+    SecManagerImpl_QueryCustomPolicy,
+    SecManagerImpl_SetZoneMapping,
+    SecManagerImpl_GetZoneMappings
+};
+
+HRESULT SecManagerImpl_Construct(IUnknown *pUnkOuter, LPVOID *ppobj)
+{
+    SecManagerImpl *This;
+
+    TRACE("(%p,%p)\n",pUnkOuter,ppobj);
+    This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This));
+
+    /* Initialize the virtual function table. */
+    This->lpvtbl1      = &VT_SecManagerImpl;
+    This->ref          = 1;
+
+    *ppobj = This;
+    return S_OK;
+}
+
+/***********************************************************************
+ *           InternetZoneManager implementation
+ *
+ */
+typedef struct {
+    IInternetZoneManagerVtbl* lpVtbl;
+    ULONG ref;
+} ZoneMgrImpl;
+
+/********************************************************************
+ *      IInternetZoneManager_QueryInterface
+ */
+static HRESULT WINAPI ZoneMgrImpl_QueryInterface(IInternetZoneManager* iface, REFIID riid, void** ppvObject)
+{
+    ZoneMgrImpl* This = (ZoneMgrImpl*)iface;
+
+    TRACE("(%p)->(%s,%p)\n", This, debugstr_guid(riid), ppvObject);
+
+    if(!This || !ppvObject)
+        return E_INVALIDARG;
+
+    if(!IsEqualIID(&IID_IUnknown, riid) && !IsEqualIID(&IID_IInternetZoneManager, riid)) {
+        FIXME("Unknown interface: %s\n", debugstr_guid(riid));
+        *ppvObject = NULL;
+        return E_NOINTERFACE;
+    }
+
+    *ppvObject = iface;
+    IInternetZoneManager_AddRef(iface);
+
+    return S_OK;
+}
+
+/********************************************************************
+ *      IInternetZoneManager_AddRef
+ */
+static ULONG WINAPI ZoneMgrImpl_AddRef(IInternetZoneManager* iface)
+{
+    ZoneMgrImpl* This = (ZoneMgrImpl*)iface;
+
+    TRACE("(%p) was %lu\n", This, This->ref);
+
+    return InterlockedIncrement(&This->ref);
+}
+
+/********************************************************************
+ *      IInternetZoneManager_Release
+ */
+static ULONG WINAPI ZoneMgrImpl_Release(IInternetZoneManager* iface)
+{
+    ZoneMgrImpl* This = (ZoneMgrImpl*)iface;
+    ULONG ref;
+
+    TRACE("(%p) was %lu\n", This, This->ref);
+    ref = InterlockedDecrement(&This->ref);
+
+    if(!ref)
+        HeapFree(GetProcessHeap(), 0, This);
+
+    return ref;
+}
+
+/********************************************************************
+ *      IInternetZoneManager_GetZoneAttributes
+ */
+static HRESULT WINAPI ZoneMgrImpl_GetZoneAttributes(IInternetZoneManager* iface,
+                                                    DWORD dwZone,
+                                                    ZONEATTRIBUTES* pZoneAttributes)
+{
+    FIXME("(%p)->(%ld %p) stub\n", iface, dwZone, pZoneAttributes);
+    return E_NOTIMPL;
+}
+
+/********************************************************************
+ *      IInternetZoneManager_SetZoneAttributes
+ */
+static HRESULT WINAPI ZoneMgrImpl_SetZoneAttributes(IInternetZoneManager* iface,
+                                                    DWORD dwZone,
+                                                    ZONEATTRIBUTES* pZoneAttributes)
+{
+    FIXME("(%p)->(%08lx %p) stub\n", iface, dwZone, pZoneAttributes);
+    return E_NOTIMPL;
+}
+
+/********************************************************************
+ *      IInternetZoneManager_GetZoneCustomPolicy
+ */
+static HRESULT WINAPI ZoneMgrImpl_GetZoneCustomPolicy(IInternetZoneManager* iface,
+                                                      DWORD dwZone,
+                                                      REFGUID guidKey,
+                                                      BYTE** ppPolicy,
+                                                      DWORD* pcbPolicy,
+                                                      URLZONEREG ulrZoneReg)
+{
+    FIXME("(%p)->(%08lx %s %p %p %08x) stub\n", iface, dwZone, debugstr_guid(guidKey),
+                                                    ppPolicy, pcbPolicy, ulrZoneReg);
+    return E_NOTIMPL;
+}
+
+/********************************************************************
+ *      IInternetZoneManager_SetZoneCustomPolicy
+ */
+static HRESULT WINAPI ZoneMgrImpl_SetZoneCustomPolicy(IInternetZoneManager* iface,
+                                                      DWORD dwZone,
+                                                      REFGUID guidKey,
+                                                      BYTE* ppPolicy,
+                                                      DWORD cbPolicy,
+                                                      URLZONEREG ulrZoneReg)
+{
+    FIXME("(%p)->(%08lx %s %p %08lx %08x) stub\n", iface, dwZone, debugstr_guid(guidKey),
+                                                    ppPolicy, cbPolicy, ulrZoneReg);
+    return E_NOTIMPL;
+}
+
+/********************************************************************
+ *      IInternetZoneManager_GetZoneActionPolicy
+ */
+static HRESULT WINAPI ZoneMgrImpl_GetZoneActionPolicy(IInternetZoneManager* iface,
+                                                      DWORD dwZone,
+                                                      DWORD dwAction,
+                                                      BYTE* pPolicy,
+                                                      DWORD cbPolicy,
+                                                      URLZONEREG urlZoneReg)
+{
+    FIXME("(%p)->(%08lx %08lx %p %08lx %08x) stub\n", iface, dwZone, dwAction, pPolicy,
+                                                       cbPolicy, urlZoneReg);
+    return E_NOTIMPL;
+}
+
+/********************************************************************
+ *      IInternetZoneManager_SetZoneActionPolicy
+ */
+static HRESULT WINAPI ZoneMgrImpl_SetZoneActionPolicy(IInternetZoneManager* iface,
+                                                      DWORD dwZone,
+                                                      DWORD dwAction,
+                                                      BYTE* pPolicy,
+                                                      DWORD cbPolicy,
+                                                      URLZONEREG urlZoneReg)
+{
+    FIXME("(%p)->(%08lx %08lx %p %08lx %08x) stub\n", iface, dwZone, dwAction, pPolicy,
+                                                       cbPolicy, urlZoneReg);
+    return E_NOTIMPL;
+}
+
+/********************************************************************
+ *      IInternetZoneManager_LogAction
+ */
+static HRESULT WINAPI ZoneMgrImpl_LogAction(IInternetZoneManager* iface,
+                                            DWORD dwAction,
+                                            LPCWSTR pwszUrl,
+                                            LPCWSTR pwszText,
+                                            DWORD dwLogFlags)
+{
+    FIXME("(%p)->(%08lx %s %s %08lx) stub\n", iface, dwAction, debugstr_w(pwszUrl),
+                                              debugstr_w(pwszText), dwLogFlags);
+    return E_NOTIMPL;
+}
+
+/********************************************************************
+ *      IInternetZoneManager_CreateZoneEnumerator
+ */
+static HRESULT WINAPI ZoneMgrImpl_CreateZoneEnumerator(IInternetZoneManager* iface,
+                                                       DWORD* pdwEnum,
+                                                       DWORD* pdwCount,
+                                                       DWORD dwFlags)
+{
+    FIXME("(%p)->(%p %p %08lx) stub\n", iface, pdwEnum, pdwCount, dwFlags);
+    return E_NOTIMPL;
+}
+
+/********************************************************************
+ *      IInternetZoneManager_GetZoneAt
+ */
+static HRESULT WINAPI ZoneMgrImpl_GetZoneAt(IInternetZoneManager* iface,
+                                            DWORD dwEnum,
+                                            DWORD dwIndex,
+                                            DWORD* pdwZone)
+{
+    FIXME("(%p)->(%08lx %08lx %p) stub\n", iface, dwEnum, dwIndex, pdwZone);
+    return E_NOTIMPL;
+}
+
+/********************************************************************
+ *      IInternetZoneManager_DestroyZoneEnumerator
+ */
+static HRESULT WINAPI ZoneMgrImpl_DestroyZoneEnumerator(IInternetZoneManager* iface,
+                                                        DWORD dwEnum)
+{
+    FIXME("(%p)->(%08lx) stub\n", iface, dwEnum);
+    return E_NOTIMPL;
+}
+
+/********************************************************************
+ *      IInternetZoneManager_CopyTemplatePoliciesToZone
+ */
+static HRESULT WINAPI ZoneMgrImpl_CopyTemplatePoliciesToZone(IInternetZoneManager* iface,
+                                                             DWORD dwTemplate,
+                                                             DWORD dwZone,
+                                                             DWORD dwReserved)
+{
+    FIXME("(%p)->(%08lx %08lx %08lx) stub\n", iface, dwTemplate, dwZone, dwReserved);
+    return E_NOTIMPL;
+}
+
+/********************************************************************
+ *      IInternetZoneManager_Construct
+ */
+static IInternetZoneManagerVtbl ZoneMgrImplVtbl = {
+    ZoneMgrImpl_QueryInterface,
+    ZoneMgrImpl_AddRef,
+    ZoneMgrImpl_Release,
+    ZoneMgrImpl_GetZoneAttributes,
+    ZoneMgrImpl_SetZoneAttributes,
+    ZoneMgrImpl_GetZoneCustomPolicy,
+    ZoneMgrImpl_SetZoneCustomPolicy,
+    ZoneMgrImpl_GetZoneActionPolicy,
+    ZoneMgrImpl_SetZoneActionPolicy,
+    ZoneMgrImpl_LogAction,
+    ZoneMgrImpl_CreateZoneEnumerator,
+    ZoneMgrImpl_GetZoneAt,
+    ZoneMgrImpl_DestroyZoneEnumerator,
+    ZoneMgrImpl_CopyTemplatePoliciesToZone,
+};
+HRESULT ZoneMgrImpl_Construct(IUnknown *pUnkOuter, LPVOID *ppobj)
+{
+    ZoneMgrImpl* ret = HeapAlloc(GetProcessHeap(), 0, sizeof(ZoneMgrImpl));
+
+    TRACE("(%p %p)\n", pUnkOuter, ppobj);
+    ret->lpVtbl = &ZoneMgrImplVtbl;
+    ret->ref = 1;
+    *ppobj = (IInternetZoneManager*)ret;
+
+    return S_OK;
+}
+
+/***********************************************************************
+ *           CoInternetCreateSecurityManager (URLMON.@)
+ *
+ */
+HRESULT WINAPI CoInternetCreateSecurityManager( IServiceProvider *pSP,
+    IInternetSecurityManager **ppSM, DWORD dwReserved )
+{
+    TRACE("%p %p %ld\n", pSP, ppSM, dwReserved );
+    return SecManagerImpl_Construct(NULL, (void**) ppSM);
+}
+
+/********************************************************************
+ *      CoInternetCreateZoneManager (URLMON.@)
+ */
+HRESULT WINAPI CoInternetCreateZoneManager(IServiceProvider* pSP, IInternetZoneManager** ppZM, DWORD dwReserved)
+{
+    TRACE("(%p %p %lx)\n", pSP, ppZM, dwReserved);
+    return ZoneMgrImpl_Construct(NULL, (void**)ppZM);
+}

reactos/lib/urlmon
.cvsignore 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- .cvsignore	13 Aug 2004 06:14:48 -0000	1.1
+++ .cvsignore	22 Dec 2004 23:15:14 -0000	1.2
@@ -0,0 +1,11 @@
+*.coff
+*.dll
+*.d
+*.a
+*.o
+*.sym
+*.map
+*.tmp
+Makefile.ros
+urlmon.spec.def
+urlmon.stubs.c

reactos/lib/urlmon
Makefile.in 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- Makefile.in	13 Aug 2004 06:14:48 -0000	1.1
+++ Makefile.in	22 Dec 2004 23:15:14 -0000	1.2
@@ -3,11 +3,12 @@
 SRCDIR    = @srcdir@
 VPATH     = @srcdir@
 MODULE    = urlmon.dll
-IMPORTS   = wininet cabinet ole32 shlwapi user32 advapi32 kernel32 ntdll
+IMPORTS   = cabinet ole32 shlwapi wininet user32 advapi32 kernel32 ntdll
 EXTRALIBS = -luuid
 
 C_SRCS = \
 	regsvr.c \
+	sec_mgr.c \
 	umon.c \
 	urlmon_main.c
 

reactos/lib/urlmon
umon.c 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- umon.c	14 Aug 2004 20:43:40 -0000	1.2
+++ umon.c	22 Dec 2004 23:15:14 -0000	1.3
@@ -19,15 +19,14 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-#include "config.h"
-#include "wine/port.h"
-
 #define COM_NO_WINDOWS_H
 #include <stdarg.h>
 #include <stdio.h>
 
+#define COBJMACROS
 #define NONAMELESSUNION
 #define NONAMELESSSTRUCT
+
 #include "windef.h"
 #include "winbase.h"
 #include "winreg.h"
@@ -64,107 +63,12 @@
     HINTERNET hinternet, hconnect, hrequest;
 } URLMonikerImpl;
 
-/********************************************************************************/
-/* URLMoniker prototype functions :                                            */
-
-/* IUnknown prototype functions */
-static HRESULT WINAPI URLMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject);
-static ULONG   WINAPI URLMonikerImpl_AddRef(IMoniker* iface);
-static ULONG   WINAPI URLMonikerImpl_Release(IMoniker* iface);
-
-/* IPersist prototype functions */
-static HRESULT WINAPI URLMonikerImpl_GetClassID(IMoniker* iface, CLSID *pClassID);
-
-/* IPersistStream prototype functions */
-static HRESULT WINAPI URLMonikerImpl_IsDirty(IMoniker* iface);
-static HRESULT WINAPI URLMonikerImpl_Load(IMoniker* iface, IStream* pStm);
-static HRESULT WINAPI URLMonikerImpl_Save(IMoniker* iface, IStream* pStm, BOOL fClearDirty);
-static HRESULT WINAPI URLMonikerImpl_GetSizeMax(IMoniker* iface, ULARGE_INTEGER* pcbSize);
-
-/* IMoniker prototype functions */
-static HRESULT WINAPI URLMonikerImpl_BindToObject(IMoniker* iface,IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riid, VOID** ppvResult);
-static HRESULT WINAPI URLMonikerImpl_BindToStorage(IMoniker* iface,IBindCtx* pbc, IMoniker* pmkToLeft, REFIID riid, VOID** ppvResult);
-static HRESULT WINAPI URLMonikerImpl_Reduce(IMoniker* iface,IBindCtx* pbc, DWORD dwReduceHowFar,IMoniker** ppmkToLeft, IMoniker** ppmkReduced);
-static HRESULT WINAPI URLMonikerImpl_ComposeWith(IMoniker* iface,IMoniker* pmkRight,BOOL fOnlyIfNotGeneric, IMoniker** ppmkComposite);
-static HRESULT WINAPI URLMonikerImpl_Enum(IMoniker* iface,BOOL fForward, IEnumMoniker** ppenumMoniker);
-static HRESULT WINAPI URLMonikerImpl_IsEqual(IMoniker* iface,IMoniker* pmkOtherMoniker);
-static HRESULT WINAPI URLMonikerImpl_Hash(IMoniker* iface,DWORD* pdwHash);
-static HRESULT WINAPI URLMonikerImpl_IsRunning(IMoniker* iface,IBindCtx* pbc, IMoniker* pmkToLeft, IMoniker* pmkNewlyRunning);
-static HRESULT WINAPI URLMonikerImpl_GetTimeOfLastChange(IMoniker* iface, IBindCtx* pbc, IMoniker* pmkToLeft, FILETIME* pFileTime);
-static HRESULT WINAPI URLMonikerImpl_Inverse(IMoniker* iface,IMoniker** ppmk);
-static HRESULT WINAPI URLMonikerImpl_CommonPrefixWith(IMoniker* iface,IMoniker* pmkOther, IMoniker** ppmkPrefix);
-static HRESULT WINAPI URLMonikerImpl_RelativePathTo(IMoniker* iface,IMoniker* pmOther, IMoniker** ppmkRelPath);
-static HRESULT WINAPI URLMonikerImpl_GetDisplayName(IMoniker* iface,IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR *ppszDisplayName);
-static HRESULT WINAPI URLMonikerImpl_ParseDisplayName(IMoniker* iface,IBindCtx* pbc, IMoniker* pmkToLeft, LPOLESTR pszDisplayName, ULONG* pchEaten, IMoniker** ppmkOut);
-static HRESULT WINAPI URLMonikerImpl_IsSystemMoniker(IMoniker* iface,DWORD* pwdMksys);
-
-/* IBinding interface to moniker */
-static HRESULT WINAPI URLMonikerImpl_IBinding_QueryInterface(IBinding* iface,REFIID riid,void** ppvObject);
-static ULONG WINAPI URLMonikerImpl_IBinding_AddRef(IBinding* iface);
-static ULONG WINAPI URLMonikerImpl_IBinding_Release(IBinding* iface);
-static HRESULT WINAPI URLMonikerImpl_IBinding_Abort(IBinding* iface);
-static HRESULT WINAPI URLMonikerImpl_IBinding_Suspend(IBinding* iface);
-static HRESULT WINAPI URLMonikerImpl_IBinding_Resume(IBinding* iface);
-static HRESULT WINAPI URLMonikerImpl_IBinding_SetPriority(IBinding* iface, LONG nPriority);
-static HRESULT WINAPI URLMonikerImpl_IBinding_GetPriority(IBinding* iface, LONG* pnPriority);
-static HRESULT WINAPI URLMonikerImpl_IBinding_GetBindResult(IBinding* iface, CLSID* pclsidProtocol, DWORD* pdwResult, LPOLESTR* pszResult, DWORD* pdwReserved);
-
-/* Local function used by urlmoniker implementation */
-static HRESULT URLMonikerImpl_Construct(URLMonikerImpl* iface, LPCOLESTR lpszLeftURL, LPCOLESTR lpszURL);
-static HRESULT URLMonikerImpl_Destroy(URLMonikerImpl* iface);
-
-/********************************************************************************/
-/* Virtual function table for the URLMonikerImpl class which  include IPersist,*/
-/* IPersistStream and IMoniker functions.                                       */
-static IMonikerVtbl VT_URLMonikerImpl =
-{
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
-    URLMonikerImpl_QueryInterface,
-    URLMonikerImpl_AddRef,
-    URLMonikerImpl_Release,
-    URLMonikerImpl_GetClassID,
-    URLMonikerImpl_IsDirty,
-    URLMonikerImpl_Load,
-    URLMonikerImpl_Save,
-    URLMonikerImpl_GetSizeMax,
-    URLMonikerImpl_BindToObject,
-    URLMonikerImpl_BindToStorage,
-    URLMonikerImpl_Reduce,
-    URLMonikerImpl_ComposeWith,
-    URLMonikerImpl_Enum,
-    URLMonikerImpl_IsEqual,
-    URLMonikerImpl_Hash,
-    URLMonikerImpl_IsRunning,
-    URLMonikerImpl_GetTimeOfLastChange,
-    URLMonikerImpl_Inverse,
-    URLMonikerImpl_CommonPrefixWith,
-    URLMonikerImpl_RelativePathTo,
-    URLMonikerImpl_GetDisplayName,
-    URLMonikerImpl_ParseDisplayName,
-    URLMonikerImpl_IsSystemMoniker
-};
-
-static IBindingVtbl VTBinding_URLMonikerImpl =
-{
-    ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
-    URLMonikerImpl_IBinding_QueryInterface,
-    URLMonikerImpl_IBinding_AddRef,
-    URLMonikerImpl_IBinding_Release,
-    URLMonikerImpl_IBinding_Abort,
-    URLMonikerImpl_IBinding_Suspend,
-    URLMonikerImpl_IBinding_Resume,
-    URLMonikerImpl_IBinding_SetPriority,
-    URLMonikerImpl_IBinding_GetPriority,
-    URLMonikerImpl_IBinding_GetBindResult
-};
-
-
 /*******************************************************************************
  *        URLMoniker_QueryInterface
  *******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_QueryInterface(IMoniker* iface,REFIID riid,void** ppvObject)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
 
     TRACE("(%p)->(%s,%p)\n",This,debugstr_guid(riid),ppvObject);
 
@@ -188,7 +92,7 @@
         return E_NOINTERFACE;
 
     /* Query Interface always increases the reference count by one when it is successful */
-    URLMonikerImpl_AddRef(iface);
+    IMoniker_AddRef(iface);
 
     return S_OK;
 }
@@ -198,11 +102,11 @@
  ******************************************************************************/
 static ULONG WINAPI URLMonikerImpl_AddRef(IMoniker* iface)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
 
     TRACE("(%p)\n",This);
 
-    return ++(This->ref);
+    return InterlockedIncrement(&This->ref);
 }
 
 /******************************************************************************
@@ -210,20 +114,22 @@
  ******************************************************************************/
 static ULONG WINAPI URLMonikerImpl_Release(IMoniker* iface)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
+    ULONG ref;
 
     TRACE("(%p)\n",This);
 
-    This->ref--;
+    ref = InterlockedDecrement(&This->ref);
 
     /* destroy the object if there's no more reference on it */
-    if (This->ref==0){
-
-        URLMonikerImpl_Destroy(This);
+    if (ref == 0) {
+        if (This->URLName!=NULL)
+            HeapFree(GetProcessHeap(),0,This->URLName);
 
-        return 0;
+        HeapFree(GetProcessHeap(),0,This);
     }
-    return This->ref;
+
+    return ref;
 }
 
 /******************************************************************************
@@ -232,7 +138,7 @@
 static HRESULT WINAPI URLMonikerImpl_GetClassID(IMoniker* iface,
 						CLSID *pClassID)/* Pointer to CLSID of object */
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
 
     TRACE("(%p,%p)\n",This,pClassID);
 
@@ -248,7 +154,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_IsDirty(IMoniker* iface)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     /* Note that the OLE-provided implementations of the IPersistStream::IsDirty
        method in the OLE-provided moniker interfaces always return S_FALSE because
        their internal state never changes. */
@@ -267,7 +173,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_Load(IMoniker* iface,IStream* pStm)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     
     HRESULT res;
     ULONG len;
@@ -303,7 +209,7 @@
 					  IStream* pStm,/* pointer to the stream where the object is to be saved */
 					  BOOL fClearDirty)/* Specifies whether to clear the dirty flag */
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
 
     HRESULT res;
     ULONG len;
@@ -326,7 +232,7 @@
 static HRESULT WINAPI URLMonikerImpl_GetSizeMax(IMoniker* iface,
 						ULARGE_INTEGER* pcbSize)/* Pointer to size of stream needed to save object */
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
 
     TRACE("(%p,%p)\n",This,pcbSize);
 
@@ -339,67 +245,6 @@
 }
 
 /******************************************************************************
- *         URLMoniker_Construct (local function)
- *******************************************************************************/
-static HRESULT URLMonikerImpl_Construct(URLMonikerImpl* This, LPCOLESTR lpszLeftURLName, LPCOLESTR lpszURLName)
-{
-    HRESULT hres;
-    DWORD sizeStr;
-
-    TRACE("(%p,%s,%s)\n",This,debugstr_w(lpszLeftURLName),debugstr_w(lpszURLName));
-    memset(This, 0, sizeof(*This));
-
-    /* Initialize the virtual function table. */
-    This->lpvtbl1      = &VT_URLMonikerImpl;
-    This->lpvtbl2      = &VTBinding_URLMonikerImpl;
-    This->ref          = 0;
-
-    if(lpszLeftURLName) {
-        hres = UrlCombineW(lpszLeftURLName, lpszURLName, NULL, &sizeStr, 0);
-        if(FAILED(hres)) {
-            return hres;
-        }
-        sizeStr++;
-    }
-    else
-        sizeStr = lstrlenW(lpszURLName)+1;
-
-    This->URLName=HeapAlloc(GetProcessHeap(),0,sizeof(WCHAR)*(sizeStr));
-
-    if (This->URLName==NULL)
-        return E_OUTOFMEMORY;
-
-    if(lpszLeftURLName) {
-        hres = UrlCombineW(lpszLeftURLName, lpszURLName, This->URLName, &sizeStr, 0);
-        if(FAILED(hres)) {
-            HeapFree(GetProcessHeap(), 0, This->URLName);
-            return hres;
-        }
-    }
-    else
-        strcpyW(This->URLName,lpszURLName);
-
-    return S_OK;
-}
-
-
-
-/******************************************************************************
- *        URLMoniker_Destroy (local function)
- *******************************************************************************/
-static HRESULT URLMonikerImpl_Destroy(URLMonikerImpl* This)
-{
-    TRACE("(%p)\n",This);
-
-    if (This->URLName!=NULL)
-            HeapFree(GetProcessHeap(),0,This->URLName);
-
-    HeapFree(GetProcessHeap(),0,This);
-
-    return S_OK;
-}
-
-/******************************************************************************
  *                  URLMoniker_BindToObject
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_BindToObject(IMoniker* iface,
@@ -408,7 +253,7 @@
 						  REFIID riid,
 						  VOID** ppvResult)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
 
     *ppvResult=0;
 
@@ -474,7 +319,7 @@
 						   REFIID riid,
 						   VOID** ppvObject)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     HRESULT hres;
     IBindStatusCallback *pbscb;
     BINDINFO bi;
@@ -618,7 +463,7 @@
 					    IMoniker** ppmkToLeft,
 					    IMoniker** ppmkReduced)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     
     TRACE("(%p,%p,%ld,%p,%p)\n",This,pbc,dwReduceHowFar,ppmkToLeft,ppmkReduced);
 
@@ -638,7 +483,7 @@
 						 BOOL fOnlyIfNotGeneric,
 						 IMoniker** ppmkComposite)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     FIXME("(%p)->(%p,%d,%p): stub\n",This,pmkRight,fOnlyIfNotGeneric,ppmkComposite);
 
     return E_NOTIMPL;
@@ -649,7 +494,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_Enum(IMoniker* iface,BOOL fForward, IEnumMoniker** ppenumMoniker)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     TRACE("(%p,%d,%p)\n",This,fForward,ppenumMoniker);
 
     if(!ppenumMoniker)
@@ -665,7 +510,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_IsEqual(IMoniker* iface,IMoniker* pmkOtherMoniker)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     CLSID clsid;
     LPOLESTR urlPath;
     IBindCtx* bind;
@@ -702,7 +547,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_Hash(IMoniker* iface,DWORD* pdwHash)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     
     int  h = 0,i,skip,len;
     int  off = 0;
@@ -740,7 +585,7 @@
 					       IMoniker* pmkToLeft,
 					       IMoniker* pmkNewlyRunning)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     FIXME("(%p)->(%p,%p,%p): stub\n",This,pbc,pmkToLeft,pmkNewlyRunning);
 
     return E_NOTIMPL;
@@ -754,7 +599,7 @@
 							 IMoniker* pmkToLeft,
 							 FILETIME* pFileTime)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     FIXME("(%p)->(%p,%p,%p): stub\n",This,pbc,pmkToLeft,pFileTime);
 
     return E_NOTIMPL;
@@ -765,7 +610,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_Inverse(IMoniker* iface,IMoniker** ppmk)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     TRACE("(%p,%p)\n",This,ppmk);
 
     return MK_E_NOINVERSE;
@@ -776,7 +621,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_CommonPrefixWith(IMoniker* iface,IMoniker* pmkOther,IMoniker** ppmkPrefix)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     FIXME("(%p)->(%p,%p): stub\n",This,pmkOther,ppmkPrefix);
 
     return E_NOTIMPL;
@@ -787,7 +632,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_RelativePathTo(IMoniker* iface,IMoniker* pmOther, IMoniker** ppmkRelPath)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     FIXME("(%p)->(%p,%p): stub\n",This,pmOther,ppmkRelPath);
 
     return E_NOTIMPL;
@@ -801,7 +646,7 @@
 						    IMoniker* pmkToLeft,
 						    LPOLESTR *ppszDisplayName)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     
     int len;
     
@@ -831,7 +676,7 @@
 						      ULONG* pchEaten,
 						      IMoniker** ppmkOut)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     FIXME("(%p)->(%p,%p,%p,%p,%p): stub\n",This,pbc,pmkToLeft,pszDisplayName,pchEaten,ppmkOut);
 
     return E_NOTIMPL;
@@ -842,7 +687,7 @@
  ******************************************************************************/
 static HRESULT WINAPI URLMonikerImpl_IsSystemMoniker(IMoniker* iface,DWORD* pwdMksys)
 {
-    ICOM_THIS(URLMonikerImpl,iface);
+    URLMonikerImpl *This = (URLMonikerImpl *)iface;
     TRACE("(%p,%p)\n",This,pwdMksys);
 
     if(!pwdMksys)
@@ -874,7 +719,7 @@
         return E_NOINTERFACE;
 
     /* Query Interface always increases the reference count by one when it is successful */
-    URLMonikerImpl_IBinding_AddRef(iface);
+    IBinding_AddRef(iface);
 
     return S_OK;
 
@@ -944,6 +789,93 @@
     return E_NOTIMPL;
 }
 
+/********************************************************************************/
+/* Virtual function table for the URLMonikerImpl class which  include IPersist,*/
+/* IPersistStream and IMoniker functions.                                       */
+static IMonikerVtbl VT_URLMonikerImpl =
+{
+    URLMonikerImpl_QueryInterface,
+    URLMonikerImpl_AddRef,
+    URLMonikerImpl_Release,
+    URLMonikerImpl_GetClassID,
+    URLMonikerImpl_IsDirty,
+    URLMonikerImpl_Load,
+    URLMonikerImpl_Save,
+    URLMonikerImpl_GetSizeMax,
+    URLMonikerImpl_BindToObject,
+    URLMonikerImpl_BindToStorage,
+    URLMonikerImpl_Reduce,
+    URLMonikerImpl_ComposeWith,
+    URLMonikerImpl_Enum,
+    URLMonikerImpl_IsEqual,
+    URLMonikerImpl_Hash,
+    URLMonikerImpl_IsRunning,
+    URLMonikerImpl_GetTimeOfLastChange,
+    URLMonikerImpl_Inverse,
+    URLMonikerImpl_CommonPrefixWith,
+    URLMonikerImpl_RelativePathTo,
+    URLMonikerImpl_GetDisplayName,
+    URLMonikerImpl_ParseDisplayName,
+    URLMonikerImpl_IsSystemMoniker
+};
+
+static IBindingVtbl VTBinding_URLMonikerImpl =
+{
+    URLMonikerImpl_IBinding_QueryInterface,
+    URLMonikerImpl_IBinding_AddRef,
+    URLMonikerImpl_IBinding_Release,
+    URLMonikerImpl_IBinding_Abort,
+    URLMonikerImpl_IBinding_Suspend,
+    URLMonikerImpl_IBinding_Resume,
+    URLMonikerImpl_IBinding_SetPriority,
+    URLMonikerImpl_IBinding_GetPriority,
+    URLMonikerImpl_IBinding_GetBindResult
+};
+
+/******************************************************************************
+ *         URLMoniker_Construct (local function)
+ *******************************************************************************/
+static HRESULT URLMonikerImpl_Construct(URLMonikerImpl* This, LPCOLESTR lpszLeftURLName, LPCOLESTR lpszURLName)
+{
+    HRESULT hres;
+    DWORD sizeStr;
+
+    TRACE("(%p,%s,%s)\n",This,debugstr_w(lpszLeftURLName),debugstr_w(lpszURLName));
+    memset(This, 0, sizeof(*This));
+
+    /* Initialize the virtual function table. */
+    This->lpvtbl1      = &VT_URLMonikerImpl;
+    This->lpvtbl2      = &VTBinding_URLMonikerImpl;
+    This->ref          = 0;
+
+    if(lpszLeftURLName) {
+        hres = UrlCombineW(lpszLeftURLName, lpszURLName, NULL, &sizeStr, 0);
+        if(FAILED(hres)) {
+            return hres;
+        }
+        sizeStr++;
+    }
+    else
+        sizeStr = lstrlenW(lpszURLName)+1;
+
+    This->URLName=HeapAlloc(GetProcessHeap(),0,sizeof(WCHAR)*(sizeStr));
+
+    if (This->URLName==NULL)
+        return E_OUTOFMEMORY;
+
+    if(lpszLeftURLName) {
+        hres = UrlCombineW(lpszLeftURLName, lpszURLName, This->URLName, &sizeStr, 0);
+        if(FAILED(hres)) {
+            HeapFree(GetProcessHeap(), 0, This->URLName);
+            return hres;
+        }
+    }
+    else
+        strcpyW(This->URLName,lpszURLName);
+
+    return S_OK;
+}
+
 /***********************************************************************
  *           CreateAsyncBindCtx (URLMON.@)
  */
@@ -1069,22 +1001,9 @@
   return S_OK;
 }
 
-/***********************************************************************
- *           CoInternetCreateSecurityManager (URLMON.@)
- *
- */
-typedef void *IInternetSecurityManager;
-HRESULT CoInternetCreateSecurityManager( IServiceProvider *pSP,
-    IInternetSecurityManager **ppSM, DWORD dwReserved )
-{
-  FIXME("%p %ld\n", pSP, dwReserved );
-  return E_NOTIMPL;
-}
-
 static BOOL URLMON_IsBinary(LPVOID pBuffer, DWORD cbSize)
 {
-    int binarycount = 0;
-    int i;
+    unsigned int i, binarycount = 0;
     unsigned char *buff = pBuffer;
     for(i=0; i<cbSize; i++) {
         if(buff[i] < 32)
@@ -1186,7 +1105,7 @@
 {
     IBindStatusCallback *prev;
 
-	TRACE("(%p,%p,%p,%lu)\n", pbc, pbsc, ppbscPrevious, dwReserved);
+    TRACE("(%p,%p,%p,%lu)\n", pbc, pbsc, ppbscPrevious, dwReserved);
 
     if (pbc == NULL || pbsc == NULL)
         return E_INVALIDARG;

reactos/lib/urlmon
urlmon.spec 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- urlmon.spec	13 Aug 2004 06:14:48 -0000	1.1
+++ urlmon.spec	22 Dec 2004 23:15:15 -0000	1.2
@@ -8,7 +8,7 @@
 @ stdcall CoInternetCombineUrl(wstr wstr long wstr long ptr long)
 @ stdcall CoInternetCompareUrl(wstr wstr long)
 @ stdcall CoInternetCreateSecurityManager(ptr ptr long)
-@ stub CoInternetCreateZoneManager
+@ stdcall CoInternetCreateZoneManager(ptr ptr long)
 @ stub CoInternetGetProtocolFlags
 @ stub CoInternetGetSecurityUrl
 @ stdcall CoInternetGetSession(long ptr long)
@@ -46,7 +46,7 @@
 @ stdcall IsAsyncMoniker(ptr)
 @ stub IsLoggingEnabledA
 @ stub IsLoggingEnabledW
-@ stub IsValidURL
+@ stdcall IsValidURL(ptr wstr long)
 @ stdcall MkParseDisplayNameEx(ptr ptr ptr ptr) ole32.MkParseDisplayName
 @ stdcall ObtainUserAgentString(long str ptr)
 @ stub PrivateCoInstall
@@ -71,7 +71,7 @@
 @ stub URLOpenStreamA
 @ stub URLOpenStreamW
 @ stub UrlMkBuildVersion
-@ stub UrlMkGetSessionOption
+@ stdcall UrlMkGetSessionOption(long ptr long ptr long)
 @ stdcall UrlMkSetSessionOption(long ptr long long)
 @ stub WriteHitLogging
 @ stub ZonesReInit

reactos/lib/urlmon
urlmon_main.c 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- urlmon_main.c	13 Aug 2004 06:14:48 -0000	1.1
+++ urlmon_main.c	22 Dec 2004 23:15:15 -0000	1.2
@@ -20,6 +20,8 @@
 
 #include <stdarg.h>
 
+#define COBJMACROS
+
 #include "windef.h"
 #include "winbase.h"
 #include "winerror.h"
@@ -29,6 +31,8 @@
 
 #include "wine/debug.h"
 
+#include "winuser.h"
+#include "urlmon.h"
 #include "urlmon_main.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(urlmon);
@@ -77,18 +81,153 @@
     return S_FALSE;
 }
 
-/***********************************************************************
- *		DllGetClassObject (URLMON.@)
+
+
+/******************************************************************************
+ * Urlmon ClassFactory
  */
-HRESULT WINAPI URLMON_DllGetClassObject(REFCLSID rclsid, REFIID riid,
-					LPVOID *ppv)
+typedef struct {
+    IClassFactory ITF_IClassFactory;
+
+    DWORD ref;
+    HRESULT (*pfnCreateInstance)(IUnknown *pUnkOuter, LPVOID *ppObj);
+} IClassFactoryImpl;
+
+struct object_creation_info
+{
+    const CLSID *clsid;
+    HRESULT (*pfnCreateInstance)(IUnknown *pUnkOuter, LPVOID *ppObj);
+};
+ 
+static const struct object_creation_info object_creation[] =
+{
+    { &CLSID_InternetSecurityManager, &SecManagerImpl_Construct },
+    { &CLSID_InternetZoneManager, ZoneMgrImpl_Construct }
+};
+
+static HRESULT WINAPI
+CF_QueryInterface(LPCLASSFACTORY iface,REFIID riid,LPVOID *ppobj)
 {
-    FIXME("(%p, %p, %p): stub\n", debugstr_guid(rclsid),
-	  debugstr_guid(riid), ppv);
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
 
-    return CLASS_E_CLASSNOTAVAILABLE;
+    if (IsEqualGUID(riid, &IID_IUnknown)
+	|| IsEqualGUID(riid, &IID_IClassFactory))
+    {
+	IClassFactory_AddRef(iface);
+	*ppobj = This;
+	return S_OK;
+    }
+
+    WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
+    return E_NOINTERFACE;
+}
+
+static ULONG WINAPI CF_AddRef(LPCLASSFACTORY iface)
+{
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
+    return InterlockedIncrement(&This->ref);
+}
+
+static ULONG WINAPI CF_Release(LPCLASSFACTORY iface)
+{
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
+
+    ULONG ref = InterlockedDecrement(&This->ref);
+
+    if (ref == 0)
+	HeapFree(GetProcessHeap(), 0, This);
+
+    return ref;
+}
+
+
+static HRESULT WINAPI CF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter,
+                                        REFIID riid, LPVOID *ppobj)
+{
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
+    HRESULT hres;
+    LPUNKNOWN punk;
+    
+    TRACE("(%p)->(%p,%s,%p)\n",This,pOuter,debugstr_guid(riid),ppobj);
+
+    *ppobj = NULL;
+    if(SUCCEEDED(hres = This->pfnCreateInstance(pOuter, (LPVOID *) &punk))) {
+        hres = IUnknown_QueryInterface(punk, riid, ppobj);
+        IUnknown_Release(punk);
+    }
+    return hres;
+}
+
+static HRESULT WINAPI CF_LockServer(LPCLASSFACTORY iface,BOOL dolock)
+{
+    IClassFactoryImpl *This = (IClassFactoryImpl *)iface;
+    FIXME("(%p)->(%d),stub!\n",This,dolock);
+    return S_OK;
 }
 
+static IClassFactoryVtbl CF_Vtbl =
+{
+    CF_QueryInterface,
+    CF_AddRef,
+    CF_Release,
+    CF_CreateInstance,
+    CF_LockServer
+};
+
+/*******************************************************************************
+ * DllGetClassObject [URLMON.@]
+ * Retrieves class object from a DLL object
+ *
+ * NOTES
+ *    Docs say returns STDAPI
+ *
+ * PARAMS
+ *    rclsid [I] CLSID for the class object
+ *    riid   [I] Reference to identifier of interface for class object
+ *    ppv    [O] Address of variable to receive interface pointer for riid
+ *
+ * RETURNS
+ *    Success: S_OK
+ *    Failure: CLASS_E_CLASSNOTAVAILABLE, E_OUTOFMEMORY, E_INVALIDARG,
+ *             E_UNEXPECTED
+ */
+
+DWORD WINAPI URLMON_DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
+{
+    int i;
+    IClassFactoryImpl *factory;
+    
+    TRACE("(%s,%s,%p)\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
+    
+    if ( !IsEqualGUID( &IID_IClassFactory, riid )
+	 && ! IsEqualGUID( &IID_IUnknown, riid) )
+	return E_NOINTERFACE;
+
+    for (i=0; i < sizeof(object_creation)/sizeof(object_creation[0]); i++)
+    {
+	if (IsEqualGUID(object_creation[i].clsid, rclsid))
+	    break;
+    }
+
+    if (i == sizeof(object_creation)/sizeof(object_creation[0]))
+    {
+	FIXME("%s: no class found.\n", debugstr_guid(rclsid));
+	return CLASS_E_CLASSNOTAVAILABLE;
+    }
+
+    factory = HeapAlloc(GetProcessHeap(), 0, sizeof(*factory));
+    if (factory == NULL) return E_OUTOFMEMORY;
+
+    factory->ITF_IClassFactory.lpVtbl = &CF_Vtbl;
+    factory->ref = 1;
+
+    factory->pfnCreateInstance = object_creation[i].pfnCreateInstance;
+
+    *ppv = &(factory->ITF_IClassFactory);
+    return S_OK;
+}
+
+
 /***********************************************************************
  *		DllRegisterServerEx (URLMON.@)
  */
@@ -102,10 +241,21 @@
 /**************************************************************************
  *                 UrlMkSetSessionOption (URLMON.@)
  */
- HRESULT WINAPI UrlMkSetSessionOption(long lost, LPVOID *splat, long time,
- 					long nosee)
+HRESULT WINAPI UrlMkSetSessionOption(DWORD dwOption, LPVOID *pBuffer, DWORD dwBufferLength,
+ 					DWORD Reserved)
+{
+    FIXME("(%#lx, %p, %#lx): stub\n", dwOption, pBuffer, dwBufferLength);
+
+    return S_OK;
+}
+
+/**************************************************************************
+ *                 UrlMkGetSessionOption (URLMON.@)
+ */
+HRESULT WINAPI UrlMkGetSessionOption(DWORD dwOption, LPVOID *pBuffer, DWORD dwBufferLength,
+                                        DWORD* pdwBufferLength, DWORD dwReserved)
 {
-    FIXME("(%#lx, %p, %#lx, %#lx): stub\n", lost, splat, time, nosee);
+    FIXME("(%#lx, %p, %#lx, %p): stub\n", dwOption, pBuffer, dwBufferLength, pdwBufferLength);
 
     return S_OK;
 }
@@ -142,3 +292,31 @@
     TRACE("(%s,%s,%08lx)\n", debugstr_w(pwzUrl1), debugstr_w(pwzUrl2), dwCompareFlags);
     return UrlCompareW(pwzUrl1, pwzUrl2, dwCompareFlags)==0?S_OK:S_FALSE;
 }
+
+/**************************************************************************
+ *                 IsValidURL (URLMON.@)
+ * 
+ * Determines if a specified string is a valid URL.
+ *
+ * PARAMS
+ *  pBC        [I] ignored, must be NULL.
+ *  szURL      [I] string that represents the URL in question.
+ *  dwReserved [I] reserved and must be zero.
+ *
+ * RETURNS
+ *  Success: S_OK.
+ *  Failure: S_FALSE.
+ *  returns E_INVALIDARG if one or more of the args is invalid.
+ *
+ * TODO:
+ *  test functionality against windows to see what a valid URL is.
+ */
+HRESULT WINAPI IsValidURL(LPBC pBC, LPCWSTR szURL, DWORD dwReserved)
+{
+    FIXME("(%p, %s, %ld): stub\n", pBC, debugstr_w(szURL), dwReserved);
+    
+    if (pBC != NULL || dwReserved != 0)
+        return E_INVALIDARG;
+    
+    return S_OK;
+}

reactos/lib/urlmon
urlmon_main.h 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- urlmon_main.h	13 Aug 2004 06:14:48 -0000	1.1
+++ urlmon_main.h	22 Dec 2004 23:15:15 -0000	1.2
@@ -25,5 +25,9 @@
 #include "winbase.h"
 
 extern HINSTANCE URLMON_hInstance;
+extern HRESULT SecManagerImpl_Construct(IUnknown *pUnkOuter, LPVOID *ppobj);
+extern HRESULT ZoneMgrImpl_Construct(IUnknown *pUnkOuter, LPVOID *ppobj);
+
+#define ICOM_THIS_MULTI(impl,field,iface) impl* const This=(impl*)((char*)(iface) - offsetof(impl,field))
 
 #endif /* __WINE_URLMON_MAIN_H */

reactos/lib/urlmon
urlmon.h removed after 1.1
diff -N urlmon.h
--- urlmon.h	13 Aug 2004 06:14:48 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,1623 +0,0 @@
-/*** Autogenerated by WIDL 0.1 from urlmon.idl - Do not edit ***/
-#include <rpc.h>
-#include <rpcndr.h>
-
-#ifndef __WIDL_URLMON_H
-#define __WIDL_URLMON_H
-#ifdef __cplusplus
-extern "C" {
-#endif
-#include <objidl.h>
-#include <oleidl.h>
-#include <servprov.h>
-#ifndef __IBinding_FWD_DEFINED__
-#define __IBinding_FWD_DEFINED__
-typedef struct IBinding IBinding;
-#endif
-
-typedef IBinding *LPBINDING;
-
-/*****************************************************************************
- * IBinding interface
- */
-#ifndef __IBinding_INTERFACE_DEFINED__
-#define __IBinding_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IBinding, 0x79eac9c0, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-struct IBinding : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE Abort(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE Suspend(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE Resume(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetPriority(
-        LONG nPriority) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetPriority(
-        LONG* pnPriority) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetBindResult(
-        CLSID* pclsidProtocol,
-        DWORD* pdwResult,
-        LPOLESTR* pszResult,
-        DWORD* pdwReserved) = 0;
-
-};
-#else
-typedef struct IBindingVtbl IBindingVtbl;
-struct IBinding {
-    const IBindingVtbl* lpVtbl;
-};
-struct IBindingVtbl {
-    ICOM_MSVTABLE_COMPAT_FIELDS
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBinding* This,
-        REFIID riid,
-        void** ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBinding* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IBinding* This);
-
-    /*** IBinding methods ***/
-    HRESULT (STDMETHODCALLTYPE *Abort)(
-        IBinding* This);
-
-    HRESULT (STDMETHODCALLTYPE *Suspend)(
-        IBinding* This);
-
-    HRESULT (STDMETHODCALLTYPE *Resume)(
-        IBinding* This);
-
-    HRESULT (STDMETHODCALLTYPE *SetPriority)(
-        IBinding* This,
-        LONG nPriority);
-
-    HRESULT (STDMETHODCALLTYPE *GetPriority)(
-        IBinding* This,
-        LONG* pnPriority);
-
-    HRESULT (STDMETHODCALLTYPE *GetBindResult)(
-        IBinding* This,
-        CLSID* pclsidProtocol,
-        DWORD* pdwResult,
-        LPOLESTR* pszResult,
-        DWORD* pdwReserved);
-
-};
-
-/*** IUnknown methods ***/
-#define IBinding_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IBinding_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IBinding_Release(p) (p)->lpVtbl->Release(p)
-/*** IBinding methods ***/
-#define IBinding_Abort(p) (p)->lpVtbl->Abort(p)
-#define IBinding_Suspend(p) (p)->lpVtbl->Suspend(p)
-#define IBinding_Resume(p) (p)->lpVtbl->Resume(p)
-#define IBinding_SetPriority(p,a) (p)->lpVtbl->SetPriority(p,a)
-#define IBinding_GetPriority(p,a) (p)->lpVtbl->GetPriority(p,a)
-#define IBinding_GetBindResult(p,a,b,c,d) (p)->lpVtbl->GetBindResult(p,a,b,c,d)
-
-#endif
-
-#define IBinding_METHODS \
-    ICOM_MSVTABLE_COMPAT_FIELDS \
-    /*** IUnknown methods ***/ \
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
-    STDMETHOD_(ULONG,Release)(THIS) PURE; \
-    /*** IBinding methods ***/ \
-    STDMETHOD_(HRESULT,Abort)(THIS) PURE; \
-    STDMETHOD_(HRESULT,Suspend)(THIS) PURE; \
-    STDMETHOD_(HRESULT,Resume)(THIS) PURE; \
-    STDMETHOD_(HRESULT,SetPriority)(THIS_ LONG nPriority) PURE; \
-    STDMETHOD_(HRESULT,GetPriority)(THIS_ LONG* pnPriority) PURE; \
-    STDMETHOD_(HRESULT,GetBindResult)(THIS_ CLSID* pclsidProtocol, DWORD* pdwResult, LPOLESTR* pszResult, DWORD* pdwReserved) PURE;
-
-HRESULT CALLBACK IBinding_Abort_Proxy(
-    IBinding* This);
-void __RPC_STUB IBinding_Abort_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IBinding_Suspend_Proxy(
-    IBinding* This);
-void __RPC_STUB IBinding_Suspend_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IBinding_Resume_Proxy(
-    IBinding* This);
-void __RPC_STUB IBinding_Resume_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IBinding_SetPriority_Proxy(
-    IBinding* This,
-    LONG nPriority);
-void __RPC_STUB IBinding_SetPriority_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IBinding_GetPriority_Proxy(
-    IBinding* This,
-    LONG* pnPriority);
-void __RPC_STUB IBinding_GetPriority_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IBinding_RemoteGetBindResult_Proxy(
-    IBinding* This,
-    CLSID* pclsidProtocol,
-    DWORD* pdwResult,
-    LPOLESTR* pszResult,
-    DWORD dwReserved);
-void __RPC_STUB IBinding_RemoteGetBindResult_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IBinding_GetBindResult_Proxy(
-    IBinding* This,
-    CLSID* pclsidProtocol,
-    DWORD* pdwResult,
-    LPOLESTR* pszResult,
-    DWORD* pdwReserved);
-HRESULT __RPC_STUB IBinding_GetBindResult_Stub(
-    IBinding* This,
-    CLSID* pclsidProtocol,
-    DWORD* pdwResult,
-    LPOLESTR* pszResult,
-    DWORD dwReserved);
-
-#endif  /* __IBinding_INTERFACE_DEFINED__ */
-
-#ifndef __IBindStatusCallback_FWD_DEFINED__
-#define __IBindStatusCallback_FWD_DEFINED__
-typedef struct IBindStatusCallback IBindStatusCallback;
-#endif
-
-typedef IBindStatusCallback *LPBINDSTATUSCALLBACK;
-
-typedef enum {
-    BINDF_ASYNCHRONOUS = 0x1,
-    BINDF_ASYNCSTORAGE = 0x2,
-    BINDF_NOPROGRESSIVERENDERING = 0x4,
-    BINDF_OFFLINEOPERATION = 0x8,
-    BINDF_GETNEWESTVERSION = 0x10,
-    BINDF_NOWRITECACHE = 0x20,
-    BINDF_NEEDFILE = 0x40,
-    BINDF_PULLDATA = 0x80,
-    BINDF_IGNORESECURITYPROBLEM = 0x100,
-    BINDF_RESYNCHRONIZE = 0x200,
-    BINDF_HYPERLINK = 0x400,
-    BINDF_NO_UI = 0x800,
-    BINDF_SILENTOPERATION = 0x1000,
-    BINDF_PRAGMA_NO_CACHE = 0x2000,
-    BINDF_GETCLASSOBJECT = 0x4000,
-    BINDF_RESERVED_1 = 0x8000,
-    BINDF_FREE_THREADED = 0x10000,
-    BINDF_DIRECT_READ = 0x20000,
-    BINDF_FORMS_SUBMIT = 0x40000,
-    BINDF_GETFROMCACHE_IF_NET_FAIL = 0x80000,
-    BINDF_FROMURLMON = 0x100000,
-    BINDF_FWD_BACK = 0x200000,
-    BINDF_PREFERDEFAULTHANDLER = 0x400000,
-    BINDF_ENFORCERESTRICTED = 0x800000
-} BINDF;
-
-typedef struct _tagBINDINFO {
-    ULONG cbSize;
-    LPWSTR szExtraInfo;
-    STGMEDIUM stgmedData;
-    DWORD grfBindInfoF;
-    DWORD dwBindVerb;
-    LPWSTR szCustomVerb;
-    DWORD cbStgmedData;
-    DWORD dwOptions;
-    DWORD dwOptionsFlags;
-    DWORD dwCodePage;
-    SECURITY_ATTRIBUTES securityAttributes;
-    IID iid;
-    IUnknown *pUnk;
-    DWORD dwReserved;
-} BINDINFO;
-
-typedef struct _REMSECURITY_ATTRIBUTES {
-    DWORD nLength;
-    DWORD lpSecurityDescriptor;
-    BOOL bInheritHandle;
-} REMSECURITY_ATTRIBUTES, *PREMSECURITY_ATTRIBUTES, *LPREMSECURITY_ATTRIBUTES;
-
-typedef struct _tagRemBINDINFO {
-    ULONG cbSize;
-    LPWSTR szExtraInfo;
-    DWORD grfBindInfoF;
-    DWORD dwBindVerb;
-    LPWSTR szCustomVerb;
-    DWORD cbstgmedData;
-    DWORD dwOptions;
-    DWORD dwOptionsFlags;
-    DWORD dwCodePage;
-    REMSECURITY_ATTRIBUTES securityAttributes;
-    IID iid;
-    IUnknown *pUnk;
-    DWORD dwReserved;
-} RemBINDINFO;
-
-typedef struct tagRemFORMATETC {
-    DWORD cfFormat;
-    DWORD ptd;
-    DWORD dwAspect;
-    LONG lindex;
-    DWORD tymed;
-} RemFORMATETC, *LPREMFORMATETC;
-
-typedef enum {
-    BSCF_FIRSTDATANOTIFICATION = 0x1,
-    BSCF_INTERMEDIATEDATANOTIFICATION = 0x2,
-    BSCF_LASTDATANOTIFICATION = 0x4,
-    BSCF_DATAFULLYAVAILABLE = 0x8,
-    BSCF_AVAILABLEDATASIZEUNKNOWN = 0x10
-} BSCF;
-
-typedef enum BINDSTATUS {
-    BINDSTATUS_FINDINGRESOURCE = 1,
-    BINDSTATUS_CONNECTING,
-    BINDSTATUS_REDIRECTING,
-    BINDSTATUS_BEGINDOWNLOADDATA,
-    BINDSTATUS_DOWNLOADINGDATA,
-    BINDSTATUS_ENDDOWNLOADDATA,
-    BINDSTATUS_BEGINDOWNLOADCOMPONENTS,
-    BINDSTATUS_INSTALLINGCOMPONENTS,
-    BINDSTATUS_ENDDOWNLOADCOMPONENTS,
-    BINDSTATUS_USINGCACHEDCOPY,
-    BINDSTATUS_SENDINGREQUEST,
-    BINDSTATUS_CLASSIDAVAILABLE,
-    BINDSTATUS_MIMETYPEAVAILABLE,
-    BINDSTATUS_CACHEFILENAMEAVAILABLE,
-    BINDSTATUS_BEGINSYNCOPERATION,
-    BINDSTATUS_ENDSYNCOPERATION,
-    BINDSTATUS_BEGINUPLOADDATA,
-    BINDSTATUS_UPLOADINGDATA,
-    BINDSTATUS_ENDUPLOADINGDATA,
-    BINDSTATUS_PROTOCOLCLASSID,
-    BINDSTATUS_ENCODING,
-    BINDSTATUS_VERFIEDMIMETYPEAVAILABLE,
-    BINDSTATUS_CLASSINSTALLLOCATION,
-    BINDSTATUS_DECODING,
-    BINDSTATUS_LOADINGMIMEHANDLER,
-    BINDSTATUS_CONTENTDISPOSITIONATTACH,
-    BINDSTATUS_FILTERREPORTMIMETYPE,
-    BINDSTATUS_CLSIDCANINSTANTIATE,
-    BINDSTATUS_IUNKNOWNAVAILABLE,
-    BINDSTATUS_DIRECTBIND,
-    BINDSTATUS_RAWMIMETYPE,
-    BINDSTATUS_PROXYDETECTING,
-    BINDSTATUS_ACCEPTRANGES,
-    BINDSTATUS_COOKIE_SENT,
-    BINDSTATUS_COMPACT_POLICY_RECEIVED,
-    BINDSTATUS_COOKIE_SUPPRESSED,
-    BINDSTATUS_COOKIE_STATE_UNKNOWN,
-    BINDSTATUS_COOKIE_STATE_ACCEPT,
-    BINDSTATUS_COOKIE_STATE_REJECT,
-    BINDSTATUS_COOKIE_STATE_PROMPT,
-    BINDSTATUS_COOKIE_STATE_LEASH,
-    BINDSTATUS_COOKIE_STATE_DOWNGRADE,
-    BINDSTATUS_POLICY_HREF,
-    BINDSTATUS_P3P_HEADER,
-    BINDSTATUS_SESSION_COOKIE_RECEIVED,
-    BINDSTATUS_PERSISTENT_COOKIE_RECEIVED,
-    BINDSTATUS_SESSION_COOKIES_ALLOWED,
-    BINDSTATUS_CACHECONTROL
-} BINDSTATUS;
-
-/*****************************************************************************
- * IBindStatusCallback interface
- */
-#ifndef __IBindStatusCallback_INTERFACE_DEFINED__
-#define __IBindStatusCallback_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IBindStatusCallback, 0x79eac9c1, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-struct IBindStatusCallback : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE OnStartBinding(
-        DWORD dwReserved,
-        IBinding* pib) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetPriority(
-        LONG* pnPriority) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE OnLowResource(
-        DWORD reserved) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE OnProgress(
-        ULONG ulProgress,
-        ULONG ulProgressMax,
-        ULONG ulStatusCode,
-        LPCWSTR szStatusText) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE OnStopBinding(
-        HRESULT hresult,
-        LPCWSTR szError) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetBindInfo(
-        DWORD* grfBINDF,
-        BINDINFO* pbindinfo) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE OnDataAvailable(
-        DWORD grfBSCF,
-        DWORD dwSize,
-        FORMATETC* pformatetc,
-        STGMEDIUM* pstgmed) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE OnObjectAvailable(
-        REFIID riid,
-        IUnknown* punk) = 0;
-
-};
-#else
-typedef struct IBindStatusCallbackVtbl IBindStatusCallbackVtbl;
-struct IBindStatusCallback {
-    const IBindStatusCallbackVtbl* lpVtbl;
-};
-struct IBindStatusCallbackVtbl {
-    ICOM_MSVTABLE_COMPAT_FIELDS
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBindStatusCallback* This,
-        REFIID riid,
-        void** ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBindStatusCallback* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IBindStatusCallback* This);
-
-    /*** IBindStatusCallback methods ***/
-    HRESULT (STDMETHODCALLTYPE *OnStartBinding)(
-        IBindStatusCallback* This,
-        DWORD dwReserved,
-        IBinding* pib);
-
-    HRESULT (STDMETHODCALLTYPE *GetPriority)(
-        IBindStatusCallback* This,
-        LONG* pnPriority);
-
-    HRESULT (STDMETHODCALLTYPE *OnLowResource)(
-        IBindStatusCallback* This,
-        DWORD reserved);
-
-    HRESULT (STDMETHODCALLTYPE *OnProgress)(
-        IBindStatusCallback* This,
-        ULONG ulProgress,
-        ULONG ulProgressMax,
-        ULONG ulStatusCode,
-        LPCWSTR szStatusText);
-
-    HRESULT (STDMETHODCALLTYPE *OnStopBinding)(
-        IBindStatusCallback* This,
-        HRESULT hresult,
-        LPCWSTR szError);
-
-    HRESULT (STDMETHODCALLTYPE *GetBindInfo)(
-        IBindStatusCallback* This,
-        DWORD* grfBINDF,
-        BINDINFO* pbindinfo);
-
-    HRESULT (STDMETHODCALLTYPE *OnDataAvailable)(
-        IBindStatusCallback* This,
-        DWORD grfBSCF,
-        DWORD dwSize,
-        FORMATETC* pformatetc,
-        STGMEDIUM* pstgmed);
-
-    HRESULT (STDMETHODCALLTYPE *OnObjectAvailable)(
-        IBindStatusCallback* This,
-        REFIID riid,
-        IUnknown* punk);
-
-};
-
-/*** IUnknown methods ***/
-#define IBindStatusCallback_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IBindStatusCallback_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IBindStatusCallback_Release(p) (p)->lpVtbl->Release(p)
-/*** IBindStatusCallback methods ***/
-#define IBindStatusCallback_OnStartBinding(p,a,b) (p)->lpVtbl->OnStartBinding(p,a,b)
-#define IBindStatusCallback_GetPriority(p,a) (p)->lpVtbl->GetPriority(p,a)
-#define IBindStatusCallback_OnLowResource(p,a) (p)->lpVtbl->OnLowResource(p,a)
-#define IBindStatusCallback_OnProgress(p,a,b,c,d) (p)->lpVtbl->OnProgress(p,a,b,c,d)
-#define IBindStatusCallback_OnStopBinding(p,a,b) (p)->lpVtbl->OnStopBinding(p,a,b)
-#define IBindStatusCallback_GetBindInfo(p,a,b) (p)->lpVtbl->GetBindInfo(p,a,b)
-#define IBindStatusCallback_OnDataAvailable(p,a,b,c,d) (p)->lpVtbl->OnDataAvailable(p,a,b,c,d)
-#define IBindStatusCallback_OnObjectAvailable(p,a,b) (p)->lpVtbl->OnObjectAvailable(p,a,b)
-
-#endif
-
-#define IBindStatusCallback_METHODS \
-    ICOM_MSVTABLE_COMPAT_FIELDS \
-    /*** IUnknown methods ***/ \
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
-    STDMETHOD_(ULONG,Release)(THIS) PURE; \
-    /*** IBindStatusCallback methods ***/ \
-    STDMETHOD_(HRESULT,OnStartBinding)(THIS_ DWORD dwReserved, IBinding* pib) PURE; \
-    STDMETHOD_(HRESULT,GetPriority)(THIS_ LONG* pnPriority) PURE; \
-    STDMETHOD_(HRESULT,OnLowResource)(THIS_ DWORD reserved) PURE; \
-    STDMETHOD_(HRESULT,OnProgress)(THIS_ ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR szStatusText) PURE; \
-    STDMETHOD_(HRESULT,OnStopBinding)(THIS_ HRESULT hresult, LPCWSTR szError) PURE; \
-    STDMETHOD_(HRESULT,GetBindInfo)(THIS_ DWORD* grfBINDF, BINDINFO* pbindinfo) PURE; \
-    STDMETHOD_(HRESULT,OnDataAvailable)(THIS_ DWORD grfBSCF, DWORD dwSize, FORMATETC* pformatetc, STGMEDIUM* pstgmed) PURE; \
-    STDMETHOD_(HRESULT,OnObjectAvailable)(THIS_ REFIID riid, IUnknown* punk) PURE;
-
-HRESULT CALLBACK IBindStatusCallback_OnStartBinding_Proxy(
-    IBindStatusCallback* This,
-    DWORD dwReserved,
-    IBinding* pib);
-void __RPC_STUB IBindStatusCallback_OnStartBinding_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IBindStatusCallback_GetPriority_Proxy(
-    IBindStatusCallback* This,
-    LONG* pnPriority);
-void __RPC_STUB IBindStatusCallback_GetPriority_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IBindStatusCallback_OnLowResource_Proxy(
-    IBindStatusCallback* This,
-    DWORD reserved);
-void __RPC_STUB IBindStatusCallback_OnLowResource_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IBindStatusCallback_OnProgress_Proxy(
-    IBindStatusCallback* This,
-    ULONG ulProgress,
-    ULONG ulProgressMax,
-    ULONG ulStatusCode,
-    LPCWSTR szStatusText);
-void __RPC_STUB IBindStatusCallback_OnProgress_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IBindStatusCallback_OnStopBinding_Proxy(
-    IBindStatusCallback* This,
-    HRESULT hresult,
-    LPCWSTR szError);
-void __RPC_STUB IBindStatusCallback_OnStopBinding_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IBindStatusCallback_RemoteGetBindInfo_Proxy(
-    IBindStatusCallback* This,
-    DWORD* grfBINDF,
-    RemBINDINFO* pbindinfo,
-    RemSTGMEDIUM* pstgmed);
-void __RPC_STUB IBindStatusCallback_RemoteGetBindInfo_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IBindStatusCallback_GetBindInfo_Proxy(
-    IBindStatusCallback* This,
-    DWORD* grfBINDF,
-    BINDINFO* pbindinfo);
-HRESULT __RPC_STUB IBindStatusCallback_GetBindInfo_Stub(
-    IBindStatusCallback* This,
-    DWORD* grfBINDF,
-    RemBINDINFO* pbindinfo,
-    RemSTGMEDIUM* pstgmed);
-HRESULT CALLBACK IBindStatusCallback_RemoteOnDataAvailable_Proxy(
-    IBindStatusCallback* This,
-    DWORD grfBSCF,
-    DWORD dwSize,
-    RemFORMATETC* pformatetc,
-    RemSTGMEDIUM* pstgmed);
-void __RPC_STUB IBindStatusCallback_RemoteOnDataAvailable_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IBindStatusCallback_OnDataAvailable_Proxy(
-    IBindStatusCallback* This,
-    DWORD grfBSCF,
-    DWORD dwSize,
-    FORMATETC* pformatetc,
-    STGMEDIUM* pstgmed);
-HRESULT __RPC_STUB IBindStatusCallback_OnDataAvailable_Stub(
-    IBindStatusCallback* This,
-    DWORD grfBSCF,
-    DWORD dwSize,
-    RemFORMATETC* pformatetc,
-    RemSTGMEDIUM* pstgmed);
-HRESULT CALLBACK IBindStatusCallback_OnObjectAvailable_Proxy(
-    IBindStatusCallback* This,
-    REFIID riid,
-    IUnknown* punk);
-void __RPC_STUB IBindStatusCallback_OnObjectAvailable_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IBindStatusCallback_INTERFACE_DEFINED__ */
-
-#define SID_IBindHost IID_IBindHost
-#define SID_SBindHost IID_IBindHost
-#ifndef __IBindHost_FWD_DEFINED__
-#define __IBindHost_FWD_DEFINED__
-typedef struct IBindHost IBindHost;
-#endif
-
-typedef IBindHost *LPBINDHOST;
-
-/*****************************************************************************
- * IBindHost interface
- */
-#ifndef __IBindHost_INTERFACE_DEFINED__
-#define __IBindHost_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IBindHost, 0xfc4801a1, 0x2ba9, 0x11cf, 0xa2,0x29, 0x00,0xaa,0x00,0x3d,0x73,0x52);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-struct IBindHost : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE CreateMoniker(
-        LPOLESTR szName,
-        IBindCtx* pBC,
-        IMoniker** ppmk,
-        DWORD dwReserved) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE MonikerBindToStorage(
-        IMoniker* pMk,
-        IBindCtx* pBC,
-        IBindStatusCallback* pBSC,
-        REFIID riid,
-        void** ppvObj) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE MonikerBindToObject(
-        IMoniker* pMk,
-        IBindCtx* pBC,
-        IBindStatusCallback* pBSC,
-        REFIID riid,
-        void** ppvObj) = 0;
-
-};
-#else
-typedef struct IBindHostVtbl IBindHostVtbl;
-struct IBindHost {
-    const IBindHostVtbl* lpVtbl;
-};
-struct IBindHostVtbl {
-    ICOM_MSVTABLE_COMPAT_FIELDS
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBindHost* This,
-        REFIID riid,
-        void** ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBindHost* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IBindHost* This);
-
-    /*** IBindHost methods ***/
-    HRESULT (STDMETHODCALLTYPE *CreateMoniker)(
-        IBindHost* This,
-        LPOLESTR szName,
-        IBindCtx* pBC,
-        IMoniker** ppmk,
-        DWORD dwReserved);
-
-    HRESULT (STDMETHODCALLTYPE *MonikerBindToStorage)(
-        IBindHost* This,
-        IMoniker* pMk,
-        IBindCtx* pBC,
-        IBindStatusCallback* pBSC,
-        REFIID riid,
-        void** ppvObj);
-
-    HRESULT (STDMETHODCALLTYPE *MonikerBindToObject)(
-        IBindHost* This,
-        IMoniker* pMk,
-        IBindCtx* pBC,
-        IBindStatusCallback* pBSC,
-        REFIID riid,
-        void** ppvObj);
-
-};
-
-/*** IUnknown methods ***/
-#define IBindHost_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IBindHost_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IBindHost_Release(p) (p)->lpVtbl->Release(p)
-/*** IBindHost methods ***/
-#define IBindHost_CreateMoniker(p,a,b,c,d) (p)->lpVtbl->CreateMoniker(p,a,b,c,d)
-#define IBindHost_MonikerBindToStorage(p,a,b,c,d,e) (p)->lpVtbl->MonikerBindToStorage(p,a,b,c,d,e)
-#define IBindHost_MonikerBindToObject(p,a,b,c,d,e) (p)->lpVtbl->MonikerBindToObject(p,a,b,c,d,e)
-
-#endif
-
-#define IBindHost_METHODS \
-    ICOM_MSVTABLE_COMPAT_FIELDS \
-    /*** IUnknown methods ***/ \
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
-    STDMETHOD_(ULONG,Release)(THIS) PURE; \
-    /*** IBindHost methods ***/ \
-    STDMETHOD_(HRESULT,CreateMoniker)(THIS_ LPOLESTR szName, IBindCtx* pBC, IMoniker** ppmk, DWORD dwReserved) PURE; \
-    STDMETHOD_(HRESULT,MonikerBindToStorage)(THIS_ IMoniker* pMk, IBindCtx* pBC, IBindStatusCallback* pBSC, REFIID riid, void** ppvObj) PURE; \
-    STDMETHOD_(HRESULT,MonikerBindToObject)(THIS_ IMoniker* pMk, IBindCtx* pBC, IBindStatusCallback* pBSC, REFIID riid, void** ppvObj) PURE;
-
-HRESULT CALLBACK IBindHost_CreateMoniker_Proxy(
-    IBindHost* This,
-    LPOLESTR szName,
-    IBindCtx* pBC,
-    IMoniker** ppmk,
-    DWORD dwReserved);
-void __RPC_STUB IBindHost_CreateMoniker_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IBindHost_RemoteMonikerBindToStorage_Proxy(
-    IBindHost* This,
-    IMoniker* pMk,
-    IBindCtx* pBC,
-    IBindStatusCallback* pBSC,
-    REFIID riid,
-    IUnknown** ppvObj);
-void __RPC_STUB IBindHost_RemoteMonikerBindToStorage_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IBindHost_MonikerBindToStorage_Proxy(
-    IBindHost* This,
-    IMoniker* pMk,
-    IBindCtx* pBC,
-    IBindStatusCallback* pBSC,
-    REFIID riid,
-    void** ppvObj);
-HRESULT __RPC_STUB IBindHost_MonikerBindToStorage_Stub(
-    IBindHost* This,
-    IMoniker* pMk,
-    IBindCtx* pBC,
-    IBindStatusCallback* pBSC,
-    REFIID riid,
-    IUnknown** ppvObj);
-HRESULT CALLBACK IBindHost_RemoteMonikerBindToObject_Proxy(
-    IBindHost* This,
-    IMoniker* pMk,
-    IBindCtx* pBC,
-    IBindStatusCallback* pBSC,
-    REFIID riid,
-    IUnknown** ppvObj);
-void __RPC_STUB IBindHost_RemoteMonikerBindToObject_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IBindHost_MonikerBindToObject_Proxy(
-    IBindHost* This,
-    IMoniker* pMk,
-    IBindCtx* pBC,
-    IBindStatusCallback* pBSC,
-    REFIID riid,
-    void** ppvObj);
-HRESULT __RPC_STUB IBindHost_MonikerBindToObject_Stub(
-    IBindHost* This,
-    IMoniker* pMk,
-    IBindCtx* pBC,
-    IBindStatusCallback* pBSC,
-    REFIID riid,
-    IUnknown** ppvObj);
-
-#endif  /* __IBindHost_INTERFACE_DEFINED__ */
-
-#ifndef __IWinInetInfo_FWD_DEFINED__
-#define __IWinInetInfo_FWD_DEFINED__
-typedef struct IWinInetInfo IWinInetInfo;
-#endif
-
-typedef IWinInetInfo *LPWININETINFO;
-
-/*****************************************************************************
- * IWinInetInfo interface
- */
-#ifndef __IWinInetInfo_INTERFACE_DEFINED__
-#define __IWinInetInfo_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IWinInetInfo, 0x79eac9d6, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-struct IWinInetInfo : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE QueryOption(
-        DWORD dwOption,
-        LPVOID pBuffer,
-        DWORD* pcbBuf) = 0;
-
-};
-#else
-typedef struct IWinInetInfoVtbl IWinInetInfoVtbl;
-struct IWinInetInfo {
-    const IWinInetInfoVtbl* lpVtbl;
-};
-struct IWinInetInfoVtbl {
-    ICOM_MSVTABLE_COMPAT_FIELDS
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IWinInetInfo* This,
-        REFIID riid,
-        void** ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IWinInetInfo* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IWinInetInfo* This);
-
-    /*** IWinInetInfo methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryOption)(
-        IWinInetInfo* This,
-        DWORD dwOption,
-        LPVOID pBuffer,
-        DWORD* pcbBuf);
-
-};
-
-/*** IUnknown methods ***/
-#define IWinInetInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWinInetInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IWinInetInfo_Release(p) (p)->lpVtbl->Release(p)
-/*** IWinInetInfo methods ***/
-#define IWinInetInfo_QueryOption(p,a,b,c) (p)->lpVtbl->QueryOption(p,a,b,c)
-
-#endif
-
-#define IWinInetInfo_METHODS \
-    ICOM_MSVTABLE_COMPAT_FIELDS \
-    /*** IUnknown methods ***/ \
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
-    STDMETHOD_(ULONG,Release)(THIS) PURE; \
-    /*** IWinInetInfo methods ***/ \
-    STDMETHOD_(HRESULT,QueryOption)(THIS_ DWORD dwOption, LPVOID pBuffer, DWORD* pcbBuf) PURE;
-
-HRESULT CALLBACK IWinInetInfo_RemoteQueryOption_Proxy(
-    IWinInetInfo* This,
-    DWORD dwOption,
-    BYTE* pBuffer,
-    DWORD* pcbBuf);
-void __RPC_STUB IWinInetInfo_RemoteQueryOption_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IWinInetInfo_QueryOption_Proxy(
-    IWinInetInfo* This,
-    DWORD dwOption,
-    LPVOID pBuffer,
-    DWORD* pcbBuf);
-HRESULT __RPC_STUB IWinInetInfo_QueryOption_Stub(
-    IWinInetInfo* This,
-    DWORD dwOption,
-    BYTE* pBuffer,
-    DWORD* pcbBuf);
-
-#endif  /* __IWinInetInfo_INTERFACE_DEFINED__ */
-
-#ifndef __IWinInetHttpInfo_FWD_DEFINED__
-#define __IWinInetHttpInfo_FWD_DEFINED__
-typedef struct IWinInetHttpInfo IWinInetHttpInfo;
-#endif
-
-typedef IWinInetHttpInfo *LPWININETHTTPINFO;
-
-/*****************************************************************************
- * IWinInetHttpInfo interface
- */
-#ifndef __IWinInetHttpInfo_INTERFACE_DEFINED__
-#define __IWinInetHttpInfo_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IWinInetHttpInfo, 0x79eac9d8, 0xbafa, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-struct IWinInetHttpInfo : public IWinInetInfo
-{
-    virtual HRESULT STDMETHODCALLTYPE QueryInfo(
-        DWORD dwOption,
-        LPVOID pBuffer,
-        DWORD* pcbBuf,
-        DWORD* pdwFlags,
-        DWORD* pdwReserved) = 0;
-
-};
-#else
-typedef struct IWinInetHttpInfoVtbl IWinInetHttpInfoVtbl;
-struct IWinInetHttpInfo {
-    const IWinInetHttpInfoVtbl* lpVtbl;
-};
-struct IWinInetHttpInfoVtbl {
-    ICOM_MSVTABLE_COMPAT_FIELDS
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IWinInetHttpInfo* This,
-        REFIID riid,
-        void** ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IWinInetHttpInfo* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IWinInetHttpInfo* This);
-
-    /*** IWinInetInfo methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryOption)(
-        IWinInetHttpInfo* This,
-        DWORD dwOption,
-        LPVOID pBuffer,
-        DWORD* pcbBuf);
-
-    /*** IWinInetHttpInfo methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInfo)(
-        IWinInetHttpInfo* This,
-        DWORD dwOption,
-        LPVOID pBuffer,
-        DWORD* pcbBuf,
-        DWORD* pdwFlags,
-        DWORD* pdwReserved);
-
-};
-
-/*** IUnknown methods ***/
-#define IWinInetHttpInfo_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
-#define IWinInetHttpInfo_AddRef(p) (p)->lpVtbl->AddRef(p)
-#define IWinInetHttpInfo_Release(p) (p)->lpVtbl->Release(p)
-/*** IWinInetInfo methods ***/
-#define IWinInetHttpInfo_QueryOption(p,a,b,c) (p)->lpVtbl->QueryOption(p,a,b,c)
-/*** IWinInetHttpInfo methods ***/
-#define IWinInetHttpInfo_QueryInfo(p,a,b,c,d,e) (p)->lpVtbl->QueryInfo(p,a,b,c,d,e)
-
-#endif
-
-#define IWinInetHttpInfo_METHODS \
-    ICOM_MSVTABLE_COMPAT_FIELDS \
-    /*** IUnknown methods ***/ \
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
-    STDMETHOD_(ULONG,Release)(THIS) PURE; \
-    /*** IWinInetInfo methods ***/ \
-    STDMETHOD_(HRESULT,QueryOption)(THIS_ DWORD dwOption, LPVOID pBuffer, DWORD* pcbBuf) PURE; \
-    /*** IWinInetHttpInfo methods ***/ \
-    STDMETHOD_(HRESULT,QueryInfo)(THIS_ DWORD dwOption, LPVOID pBuffer, DWORD* pcbBuf, DWORD* pdwFlags, DWORD* pdwReserved) PURE;
-
-HRESULT CALLBACK IWinInetHttpInfo_RemoteQueryInfo_Proxy(
-    IWinInetHttpInfo* This,
-    DWORD dwOption,
-    BYTE* pBuffer,
-    DWORD* pcbBuf,
-    DWORD* pdwFlags,
-    DWORD* pdwReserved);
-void __RPC_STUB IWinInetHttpInfo_RemoteQueryInfo_Stub(
-    struct IRpcStubBuffer* This,
-    struct IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IWinInetHttpInfo_QueryInfo_Proxy(
-    IWinInetHttpInfo* This,
-    DWORD dwOption,
-    LPVOID pBuffer,
-    DWORD* pcbBuf,
-    DWORD* pdwFlags,
-    DWORD* pdwReserved);
-HRESULT __RPC_STUB IWinInetHttpInfo_QueryInfo_Stub(
-    IWinInetHttpInfo* This,
-    DWORD dwOption,
-    BYTE* pBuffer,
-    DWORD* pcbBuf,
-    DWORD* pdwFlags,
-    DWORD* pdwReserved);
-
-#endif  /* __IWinInetHttpInfo_INTERFACE_DEFINED__ */
-
-#ifndef __IPersistMoniker_FWD_DEFINED__
-#define __IPersistMoniker_FWD_DEFINED__
-typedef struct IPersistMoniker IPersistMoniker;
-#endif
-
-typedef IPersistMoniker *LPPERSISTMONIKER;
-
-/*****************************************************************************
- * IPersistMoniker interface
- */
-#ifndef __IPersistMoniker_INTERFACE_DEFINED__
-#define __IPersistMoniker_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IPersistMoniker, 0x79eac9c9, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-struct IPersistMoniker : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE GetClassID(
-        CLSID* pClassID) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE IsDirty(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE Load(
-        BOOL fFullyAvailable,
-        IMoniker* pimkName,
-        LPBC pibc,
-        DWORD grfMode) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE Save(
-        IMoniker* pimkName,
-        LPBC pbc,
-        BOOL fRemember) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SaveCompleted(
-        IMoniker* pimkName,
-        LPBC pibc) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetCurMoniker(
-        IMoniker** ppimkName) = 0;
-
-};
-#else
-typedef struct IPersistMonikerVtbl IPersistMonikerVtbl;
-struct IPersistMoniker {
[truncated at 1000 lines; 627 more skipped]

reactos/lib/uuid
uuid.c 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- uuid.c	1 Dec 2004 20:06:15 -0000	1.3
+++ uuid.c	22 Dec 2004 23:15:15 -0000	1.4
@@ -50,9 +50,7 @@
 #include "shlobj.h"
 #include "shldisp.h"
 #include "comcat.h"
-#if 0 /* FIXME */
 #include "urlmon.h"
-#endif
 
 /* FIXME: cguids declares GUIDs but does not define their values */
 
CVSspam 0.2.8