home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 December / PCWKCD1296.iso / vjplusb / activex / inetsdk / include / urlmon.idl < prev    next >
Encoding:
Text File  |  1996-07-15  |  36.9 KB  |  881 lines

  1. //+---------------------------------------------------------------------------
  2. //
  3. //  Microsoft Windows
  4. //  Copyright (C) Microsoft Corporation, 1992 - 1996.
  5. //
  6. //  File:       urlmon.idl
  7. //
  8. //  Contents:   async moniker interfaces
  9. //
  10. //  Classes:
  11. //
  12. //  Functions:
  13. //
  14. //  History:    11-02-95   JohannP (Johann Posch)   Created
  15. //
  16. //----------------------------------------------------------------------------
  17. cpp_quote("//=--------------------------------------------------------------------------=")
  18. cpp_quote("// UrlMon.h")
  19. cpp_quote("//=--------------------------------------------------------------------------=")
  20. cpp_quote("// (C) Copyright 1995-1996 Microsoft Corporation.  All Rights Reserved.")
  21. cpp_quote("//")
  22. cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
  23. cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
  24. cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
  25. cpp_quote("// PARTICULAR PURPOSE.")
  26. cpp_quote("//=--------------------------------------------------------------------------=")
  27. cpp_quote("")
  28. cpp_quote("#pragma comment(lib,\"uuid.lib\")")
  29. cpp_quote("")
  30. cpp_quote("//---------------------------------------------------------------------------=")
  31. cpp_quote("// URL Moniker Interfaces.")
  32. cpp_quote("")
  33.  
  34. import "objidl.idl";
  35. import "oleidl.idl";
  36. import "servprov.idl";
  37.  
  38. interface IPersistMoniker;
  39. interface IBindProtocol;
  40. interface IBinding;
  41. interface IBindStatusCallback;
  42. interface IAuthenticate;
  43. interface IWindowForBindingUI;
  44. interface ICodeInstall;
  45. interface IHttpNegotiate;
  46. interface IServiceProvider;
  47.  
  48. cpp_quote("// These are for backwards compatibility with previous URLMON versions")
  49. cpp_quote("#define BINDF_DONTUSECACHE BINDF_GETNEWESTVERSION")
  50. cpp_quote("#define BINDF_DONTPUTINCACHE BINDF_NOWRITECACHE")
  51. cpp_quote("#define BINDF_NOCOPYDATA BINDF_PULLDATA")
  52.  
  53. cpp_quote("EXTERN_C const IID IID_IAsyncMoniker;    ")
  54. cpp_quote("EXTERN_C const IID CLSID_StdURLMoniker;  ")
  55. cpp_quote("EXTERN_C const IID CLSID_HttpProtocol;   ")
  56. cpp_quote("EXTERN_C const IID CLSID_FtpProtocol;    ")
  57. cpp_quote("EXTERN_C const IID CLSID_GopherProtocol; ")
  58. cpp_quote("EXTERN_C const IID CLSID_HttpSProtocol;  ")
  59. cpp_quote("EXTERN_C const IID CLSID_FileProtocol;   ")
  60. cpp_quote("EXTERN_C const IID CLSID_MkProtocol;     ")
  61.  
  62. #pragma midl_echo(" ")
  63. #pragma midl_echo("#define SZ_URLCONTEXT           OLESTR(\"URL Context\")")
  64. #pragma midl_echo("#define SZ_ASYNC_CALLEE         OLESTR(\"AsyncCallee\")")
  65.  
  66. #pragma midl_echo("#define MKSYS_URLMONIKER    6                 ")
  67. #pragma midl_echo(" ")
  68. #pragma midl_echo("STDAPI CreateURLMoniker(LPMONIKER pMkCtx, LPCWSTR szURL, LPMONIKER FAR * ppmk);             ")
  69. #pragma midl_echo("STDAPI GetClassURL(LPCWSTR szURL, CLSID *pClsID);                                           ")
  70. #pragma midl_echo("STDAPI CreateAsyncBindCtx(DWORD reserved, IBindStatusCallback *pBSCb,                       ")
  71. #pragma midl_echo("                                IEnumFORMATETC *pEFetc, IBindCtx **ppBC);                   ")
  72. #pragma midl_echo("STDAPI MkParseDisplayNameEx(IBindCtx *pbc, LPCWSTR szDisplayName, ULONG *pchEaten,          ")
  73. #pragma midl_echo("                                LPMONIKER *ppmk);                                           ")
  74. #pragma midl_echo("STDAPI RegisterBindStatusCallback(LPBC pBC, IBindStatusCallback *pBSCb,                     ")
  75. #pragma midl_echo("                                IBindStatusCallback**  ppBSCBPrev, DWORD dwReserved);       ")
  76. #pragma midl_echo("STDAPI RevokeBindStatusCallback(LPBC pBC, IBindStatusCallback *pBSCb);                      ")
  77.  
  78. #pragma midl_echo("STDAPI GetClassFileOrMime(LPBC pBC, LPCWSTR szFilename, LPVOID pBuffer, DWORD cbSize, LPCWSTR szMime, DWORD dwReserved, CLSID *pclsid); ")
  79. #pragma midl_echo("STDAPI IsValidURL(LPBC pBC, LPCWSTR szURL, DWORD dwReserved);                               ")
  80.  
  81.  
  82. #pragma midl_echo("STDAPI CoGetClassObjectFromURL( REFCLSID rCLASSID,")
  83. #pragma midl_echo("            LPCWSTR szCODE, DWORD dwFileVersionMS, ")
  84. #pragma midl_echo("            DWORD dwFileVersionLS, LPCWSTR szTYPE,")
  85. #pragma midl_echo("            LPBINDCTX pBindCtx, DWORD dwClsContext,")
  86. #pragma midl_echo("            LPVOID pvReserved, REFIID riid, LPVOID * ppv);")
  87.  
  88.  
  89. #pragma midl_echo(" ")
  90. #pragma midl_echo("//helper apis                                                                               ")
  91. #pragma midl_echo("STDAPI IsAsyncMoniker(IMoniker* pmk);                                                       ")
  92. #pragma midl_echo("STDAPI CreateURLBinding(LPCWSTR lpszUrl, IBindCtx *pbc, IBinding **ppBdg);                  ")
  93. #pragma midl_echo(" ")
  94. #pragma midl_echo("STDAPI RegisterMediaTypesW(UINT ctypes, const LPCWSTR* rgszTypes, CLIPFORMAT* rgcfTypes);          ")
  95. #pragma midl_echo("STDAPI RegisterMediaTypes(UINT ctypes, const LPCSTR* rgszTypes, CLIPFORMAT* rgcfTypes);            ")
  96. #pragma midl_echo("STDAPI FindMediaType(LPCSTR rgszTypes, CLIPFORMAT* rgcfTypes);                                       ")
  97. #pragma midl_echo("STDAPI CreateFormatEnumerator( UINT cfmtetc, FORMATETC* rgfmtetc, IEnumFORMATETC** ppenumfmtetc); ")
  98. #pragma midl_echo("STDAPI RegisterFormatEnumerator(LPBC pBC, IEnumFORMATETC *pEFetc, DWORD reserved);          ")
  99. #pragma midl_echo("STDAPI RevokeFormatEnumerator(LPBC pBC, IEnumFORMATETC *pEFetc);                            ")
  100. #pragma midl_echo("STDAPI RegisterMediaTypeClass(LPBC pBC,UINT ctypes, const LPCSTR* rgszTypes, CLSID *rgclsID, DWORD reserved);    ")
  101. #pragma midl_echo("STDAPI FindMediaTypeClass(LPBC pBC, LPCSTR szType, CLSID *pclsID, DWORD reserved);                          ")
  102. #pragma midl_echo("STDAPI UrlMkSetSessionOption(DWORD dwOption, LPVOID pBuffer, DWORD dwBufferLength, DWORD dwReserved);       ")
  103.  
  104. #pragma midl_echo(" ")
  105. #pragma midl_echo("// URLMON-specific defines for UrlMkSetSessionOption() above")
  106. #pragma midl_echo("#define URLMON_OPTION_USERAGENT  0x10000001")
  107.  
  108. #pragma midl_echo(" ")
  109. #pragma midl_echo("#define CF_NULL                 0                                  ")
  110. #pragma midl_echo("#define CFSTR_MIME_NULL         NULL                               ")
  111. #pragma midl_echo("#define CFSTR_MIME_FRACTALS     (TEXT(\"application/fractals\"))   ")
  112. #pragma midl_echo("#define CFSTR_MIME_RAWDATA      (TEXT(\"application/octet\"))      ")
  113. #pragma midl_echo("#define CFSTR_MIME_POSTSCRIPT   (TEXT(\"application/postscript\")) ")
  114. #pragma midl_echo("#define CFSTR_MIME_AIFF         (TEXT(\"audio/aiff\"))             ")
  115. #pragma midl_echo("#define CFSTR_MIME_BASICAUDIO   (TEXT(\"audio/basic\"))            ")
  116. #pragma midl_echo("#define CFSTR_MIME_WAV          (TEXT(\"audio/wav\"))              ")
  117. #pragma midl_echo("#define CFSTR_MIME_X_AIFF       (TEXT(\"audio/x-aiff\"))           ")
  118. #pragma midl_echo("#define CFSTR_MIME_X_REALAUDIO  (TEXT(\"audio/x-pn-realaudio\"))   ")
  119. #pragma midl_echo("#define CFSTR_MIME_X_WAV        (TEXT(\"audio/x-wav\"))            ")
  120. #pragma midl_echo("#define CFSTR_MIME_BMP          (TEXT(\"image/bmp\"))              ")
  121. #pragma midl_echo("#define CFSTR_MIME_GIF          (TEXT(\"image/gif\"))              ")
  122. #pragma midl_echo("#define CFSTR_MIME_JPEG         (TEXT(\"image/jpeg\"))             ")
  123. #pragma midl_echo("#define CFSTR_MIME_PJPEG        (TEXT(\"image/pjpeg\"))            ")
  124. #pragma midl_echo("#define CFSTR_MIME_TIFF         (TEXT(\"image/tiff\"))             ")
  125. #pragma midl_echo("#define CFSTR_MIME_XBM          (TEXT(\"image/xbm\"))              ")
  126. #pragma midl_echo("#define CFSTR_MIME_X_BITMAP     (TEXT(\"image/x-bitmap\"))         ")
  127. #pragma midl_echo("#define CFSTR_MIME_HTML         (TEXT(\"text/html\"))              ")
  128. #pragma midl_echo("#define CFSTR_MIME_TEXT         (TEXT(\"text/plain\"))             ")
  129. #pragma midl_echo("#define CFSTR_MIME_AVI          (TEXT(\"video/avi\"))              ")
  130. #pragma midl_echo("#define CFSTR_MIME_MPEG         (TEXT(\"video/mpeg\"))             ")
  131. #pragma midl_echo("#define CFSTR_MIME_QUICKTIME    (TEXT(\"video/quicktime\"))        ")
  132. #pragma midl_echo("#define CFSTR_MIME_X_MSVIDEO    (TEXT(\"video/x-msvideo\"))        ")
  133. #pragma midl_echo("#define CFSTR_MIME_X_SGI_MOVIE  (TEXT(\"video/x-sgi-movie\"))      ")
  134. #pragma midl_echo(" ")
  135.  
  136. cpp_quote("// MessageId: MK_S_ASYNCHRONOUS                                              ")
  137. cpp_quote("// MessageText: Operation is successful, but will complete asynchronously.   ")
  138. cpp_quote("//                                                                           ")
  139. cpp_quote("#define MK_S_ASYNCHRONOUS    _HRESULT_TYPEDEF_(0x000401E8L)                  ")
  140. cpp_quote("#define S_ASYNCHRONOUS       MK_S_ASYNCHRONOUS                               ")
  141. cpp_quote("                                                                             ")
  142. cpp_quote("#ifndef E_PENDING                                                            ")
  143. cpp_quote("#define E_PENDING _HRESULT_TYPEDEF_(0x8000000AL)                             ")
  144. cpp_quote("#endif                                                                       ")
  145. cpp_quote("                                                                             ")
  146. cpp_quote("//                                                                           ")
  147. cpp_quote("//                                                                           ")
  148. cpp_quote("// WinINet and protocol specific errors are mapped to one of the following   ")
  149. cpp_quote("// error which are returned in IBSC::OnStopBinding                           ")
  150. cpp_quote("//                                                                           ")
  151. cpp_quote("//                                                                           ")
  152.  
  153. //
  154. // url could not be parsed
  155. //
  156. cpp_quote("#define INET_E_INVALID_URL               _HRESULT_TYPEDEF_(0x800C0002L)      ")
  157. //
  158. // InternetOpen failed - no session was established
  159. //
  160. cpp_quote("#define INET_E_NO_SESSION                _HRESULT_TYPEDEF_(0x800C0003L)      ")
  161. //
  162. //  InternetConnect failed - no
  163. //
  164. cpp_quote("#define INET_E_CANNOT_CONNECT            _HRESULT_TYPEDEF_(0x800C0004L)      ")
  165. //
  166. // the server or proxy was not found
  167. //
  168. cpp_quote("#define INET_E_RESOURCE_NOT_FOUND        _HRESULT_TYPEDEF_(0x800C0005L)      ")
  169. //
  170. // the actual object was not found - e.g. http: 404
  171. //
  172. cpp_quote("#define INET_E_OBJECT_NOT_FOUND          _HRESULT_TYPEDEF_(0x800C0006L)      ")
  173. //
  174. //  connection was established but data can not be retrieved
  175. //  no filename from cache invalid etc.
  176. //
  177. cpp_quote("#define INET_E_DATA_NOT_AVAILABLE        _HRESULT_TYPEDEF_(0x800C0007L)      ")
  178. //
  179. //  generic download failure - connection broke
  180. //
  181. cpp_quote("#define INET_E_DOWNLOAD_FAILURE          _HRESULT_TYPEDEF_(0x800C0008L)      ")
  182. //
  183. //  to access to this object need authentication    e.g. http: 401
  184. //
  185. cpp_quote("#define INET_E_AUTHENTICATION_REQUIRED   _HRESULT_TYPEDEF_(0x800C0009L)      ")
  186. //
  187. // the object is not available of the required type             http: 403 no object
  188. //
  189. cpp_quote("#define INET_E_NO_VALID_MEDIA            _HRESULT_TYPEDEF_(0x800C000AL)      ")
  190. //
  191. // the internet connection timed out
  192. //
  193. cpp_quote("#define INET_E_CONNECTION_TIMEOUT        _HRESULT_TYPEDEF_(0x800C000BL)      ")
  194. //
  195. // the request was invalid
  196. //
  197. cpp_quote("#define INET_E_INVALID_REQUEST           _HRESULT_TYPEDEF_(0x800C000CL)      ")
  198. //
  199. // protocol is not know and no plugable protocol is registered
  200. //
  201. cpp_quote("#define INET_E_UNKNOWN_PROTOCOL          _HRESULT_TYPEDEF_(0x800C000DL)      ")
  202. //
  203. // security problem encountered
  204. //
  205. cpp_quote("#define INET_E_SECURITY_PROBLEM          _HRESULT_TYPEDEF_(0x800C000EL)      ")
  206. //
  207. // object could not be loaded; IPersistXXX::Load failed
  208. //
  209. cpp_quote("#define INET_E_CANNOT_LOAD_DATA          _HRESULT_TYPEDEF_(0x800C000FL)      ")
  210. //
  211. // CoCreateInstance failed.
  212. //
  213. cpp_quote("#define INET_E_CANNOT_INSTANTIATE_OBJECT _HRESULT_TYPEDEF_(0x800C0010L)      ")
  214. //
  215. // HResult range returned in OnStopBinding
  216. //
  217. cpp_quote("#define INET_E_ERROR_FIRST               _HRESULT_TYPEDEF_(0x800C0002L)      ")
  218. cpp_quote("#define INET_E_ERROR_LAST                INET_E_CANNOT_INSTANTIATE_OBJECT    ")
  219.  
  220.  
  221. //+---------------------------------------------------------------------------
  222. //
  223. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  224. //
  225. //  Contents:  IPersistMoniker interface definition
  226. //
  227. //----------------------------------------------------------------------------
  228.  
  229. cpp_quote("#ifndef _LPPERSISTMONIKER_DEFINED")
  230. cpp_quote("#define _LPPERSISTMONIKER_DEFINED")
  231.  
  232. [
  233.         object,
  234.         uuid(79eac9c9-baf9-11ce-8c82-00aa004ba90b),
  235.         pointer_default(unique)
  236. ]
  237.  
  238.  
  239. //interface IPersistMoniker : IPersist
  240. interface IPersistMoniker : IUnknown
  241. {
  242.     typedef [unique] IPersistMoniker *LPPERSISTMONIKER;
  243.  
  244.     HRESULT GetClassID(
  245.         [out] CLSID *pClassID
  246.         );
  247.  
  248.     HRESULT IsDirty(void);
  249.  
  250.     HRESULT Load(
  251.         [in] BOOL fFullyAvailable,
  252.         [in] IMoniker * pimkName,
  253.         [in] LPBC pibc,
  254.         [in] DWORD grfMode
  255.         );
  256.  
  257.     HRESULT Save(
  258.         [in] IMoniker * pimkName,
  259.         [in] LPBC pbc,
  260.         [in] BOOL fRemember);
  261.  
  262.     HRESULT SaveCompleted(
  263.         [in] IMoniker * pimkName,
  264.         [in] LPBC pibc);
  265.  
  266.     HRESULT GetCurMoniker(
  267.         [out] IMoniker ** ppimkName);
  268. }
  269.  
  270. cpp_quote("#endif")
  271.  
  272.  
  273. //+---------------------------------------------------------------------------
  274. //
  275. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  276. //
  277. //  Contents:  IBindProtocol interface definition
  278. //
  279. //----------------------------------------------------------------------------
  280. cpp_quote("#ifndef _LPBINDPROTOCOL_DEFINED")
  281. cpp_quote("#define _LPBINDPROTOCOL_DEFINED")
  282.  
  283. [
  284.         local,
  285.         object,
  286.         uuid(79eac9cd-baf9-11ce-8c82-00aa004ba90b),
  287.         pointer_default(unique)
  288. ]
  289.  
  290.  
  291. interface IBindProtocol : IUnknown
  292. {
  293.         typedef [unique] IBindProtocol *LPBINDPROTOCOL;
  294.  
  295.         HRESULT CreateBinding(
  296.                 [in] LPCWSTR szUrl,
  297.                 [in] IBindCtx *pbc,
  298.                 [out] IBinding ** ppb);
  299. }
  300.  
  301. cpp_quote("#endif")
  302.  
  303.  
  304. //+---------------------------------------------------------------------------
  305. //
  306. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  307. //
  308. //  Contents:   IBinding interface definition
  309. //
  310. //----------------------------------------------------------------------------
  311.  
  312. cpp_quote("#ifndef _LPBINDING_DEFINED")
  313. cpp_quote("#define _LPBINDING_DEFINED")
  314.  
  315. [
  316.         object,
  317.         uuid(79eac9c0-baf9-11ce-8c82-00aa004ba90b),
  318.         pointer_default(unique)
  319. ]
  320.  
  321. interface IBinding: IUnknown
  322. {
  323.         typedef [unique] IBinding *LPBINDING;
  324.  
  325.         HRESULT Abort();
  326.  
  327.         HRESULT Suspend();
  328.  
  329.         HRESULT Resume();
  330.  
  331.         HRESULT SetPriority(
  332.                 [in] LONG nPriority);
  333.  
  334.         HRESULT GetPriority(
  335.                 [out] LONG * pnPriority);
  336.  
  337.         HRESULT GetBindResult(
  338.                 [out] CLSID *pclsidProtocol,
  339.                 [out] DWORD *pdwResult,
  340.                 [out] LPWSTR *pszResult,
  341.                 [in, out]  DWORD *pdwReserved
  342.                 );
  343. }
  344.  
  345. cpp_quote("#endif")
  346.  
  347.  
  348. //+---------------------------------------------------------------------------
  349. //
  350. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  351. //
  352. //  Contents:   IBindStatusCallback interface definition
  353. //
  354. //----------------------------------------------------------------------------
  355. cpp_quote("#ifndef _LPBINDSTATUSCALLBACK_DEFINED")
  356. cpp_quote("#define _LPBINDSTATUSCALLBACK_DEFINED")
  357.  
  358. [
  359.         object,
  360.         uuid(79eac9c1-baf9-11ce-8c82-00aa004ba90b),
  361.         pointer_default(unique)
  362. ]
  363.  
  364. interface IBindStatusCallback: IUnknown
  365. {
  366.         typedef [unique] IBindStatusCallback *LPBINDSTATUSCALLBACK;
  367.  
  368.         typedef enum
  369.         {
  370.             BINDVERB_GET       = 0x00000000,       // default action
  371.             BINDVERB_POST      = 0x00000001,       // post verb
  372.             BINDVERB_PUT       = 0x00000002,       // put verb
  373.             BINDVERB_CUSTOM    = 0x00000003,       // custom verb
  374.         } BINDVERB;
  375.  
  376.         typedef enum
  377.         {
  378.             BINDINFOF_URLENCODESTGMEDDATA   = 0x00000001,       // url encode the stgmed data
  379.             BINDINFOF_URLENCODEDEXTRAINFO   = 0x00000002,       // url encode the extra info
  380.         } BINDINFOF;
  381.  
  382.  
  383.         // flags that describe the type of transaction that caller wants
  384.         typedef enum
  385.         {
  386.             BINDF_ASYNCHRONOUS              = 0x00000001,
  387.             BINDF_ASYNCSTORAGE              = 0x00000002,
  388.             BINDF_NOPROGRESSIVERENDERING    = 0x00000004,
  389.             BINDF_OFFLINEOPERATION          = 0x00000008,
  390.             BINDF_GETNEWESTVERSION          = 0x00000010,
  391.             BINDF_NOWRITECACHE              = 0x00000020,
  392.             BINDF_PULLDATA                  = 0x00000080,
  393.             BINDF_IGNORESECURITYPROBLEM     = 0x00000100,
  394.  
  395.             BINDF_RESYNCHRONIZE             = 0x00000200,
  396.             BINDF_HYPERLINK                 = 0x00000400,
  397.  
  398.             BINDF_INLINESGETNEWESTVERSION   = 0x10000000, //  need to remove from SDK
  399.             BINDF_INLINESRESYNCHRONIZE      = 0x20000000  // need to remove from SDK
  400.         } BINDF;
  401.  
  402.         typedef struct _tagBINDINFO
  403.         {
  404.             ULONG       cbSize;
  405.             LPWSTR      szExtraInfo;        // e.g. string added to the URL string [range byte]
  406.             STGMEDIUM   stgmedData;         // e.g. put or post data
  407.             DWORD       grfBindInfoF;       // e.g. how meddata should be treaded
  408.             DWORD       dwBindVerb;         // e.g. put, post, ...
  409.             LPWSTR      szCustomVerb;       // e.g. custom verb
  410.             DWORD       cbstgmedData;       // size of data in stgmedData
  411.         } BINDINFO;
  412.  
  413.         typedef struct _tagRemBINDINFO
  414.         {
  415.             ULONG       cbSize;
  416.             LPWSTR      szExtraInfo;        // e.g. string added to the URL string [range byte]
  417.             DWORD       grfBindInfoF;       // e.g. how meddata should be treaded
  418.             DWORD       dwBindVerb;         // e.g. put, post, ...
  419.             LPWSTR      szCustomVerb;       // e.g. custom verb
  420.             DWORD       cbstgmedData;       // size of data in stgmedData
  421.         } RemBINDINFO;
  422.  
  423.  
  424.         // Data notification flags
  425.         typedef enum
  426.         {
  427.             BSCF_FIRSTDATANOTIFICATION          = 0x00000001,
  428.             BSCF_INTERMEDIATEDATANOTIFICATION   = 0x00000002,
  429.             BSCF_LASTDATANOTIFICATION           = 0x00000004
  430.         } BSCF;
  431.  
  432.         typedef enum tagBINDSTATUS
  433.         {
  434.              BINDSTATUS_FINDINGRESOURCE          = 1
  435.             ,BINDSTATUS_CONNECTING
  436.             ,BINDSTATUS_REDIRECTING
  437.             ,BINDSTATUS_BEGINDOWNLOADDATA
  438.             ,BINDSTATUS_DOWNLOADINGDATA
  439.             ,BINDSTATUS_ENDDOWNLOADDATA
  440.             ,BINDSTATUS_BEGINDOWNLOADCOMPONENTS
  441.             ,BINDSTATUS_INSTALLINGCOMPONENTS
  442.             ,BINDSTATUS_ENDDOWNLOADCOMPONENTS
  443.             ,BINDSTATUS_USINGCACHEDCOPY
  444.             ,BINDSTATUS_SENDINGREQUEST
  445.             ,BINDSTATUS_CLASSIDAVAILABLE
  446.             ,BINDSTATUS_MIMETYPEAVAILABLE
  447.             ,BINDSTATUS_CACHEFILENAMEAVAILABLE
  448.         } BINDSTATUS;
  449.  
  450.  
  451.         HRESULT OnStartBinding(
  452.                 [in] DWORD dwReserved,
  453.                 [in] IBinding * pib);
  454.  
  455.         HRESULT GetPriority(
  456.                 [out] LONG * pnPriority);
  457.  
  458.         HRESULT OnLowResource(
  459.                 [in] DWORD reserved);
  460.  
  461.         HRESULT OnProgress(
  462.                 [in] ULONG ulProgress,
  463.                 [in] ULONG ulProgressMax,
  464.                 [in] ULONG ulStatusCode,
  465.                 [in] LPCWSTR szStatusText);
  466.  
  467.         HRESULT OnStopBinding(
  468.                 [in] HRESULT hresult,
  469.                 [in] LPCWSTR szError
  470.                 );
  471.  
  472.         [local]
  473.         HRESULT GetBindInfo(
  474.                 [out] DWORD *grfBINDF,
  475.                 [in, out, unique] BINDINFO * pbindinfo
  476.                 );
  477.  
  478.         [call_as(GetBindInfo)]
  479.         HRESULT RemoteGetBindInfo(
  480.                 [out] DWORD *grfBINDF,
  481.                 [in, out, unique] RemBINDINFO * pbindinfo,
  482.                 [in, out, unique] RemSTGMEDIUM* pstgmed
  483.                 );
  484.  
  485.         [local]
  486.         HRESULT OnDataAvailable(
  487.                 [in] DWORD grfBSCF,
  488.                 [in] DWORD dwSize,
  489.                 [in] FORMATETC* pformatetc,
  490.                 [in] STGMEDIUM* pstgmed
  491.                 );
  492.  
  493.         [call_as(OnDataAvailable)]
  494.         HRESULT RemoteOnDataAvailable(
  495.                 [in] DWORD grfBSCF,
  496.                 [in] DWORD dwSize,
  497.                 //[in] FORMATETC* pformatetc,
  498.                 [in] DWORD dwClFormat,
  499.                 [in] RemSTGMEDIUM* pstgmed
  500.                 );
  501.  
  502.         HRESULT OnObjectAvailable(
  503.                 [in] REFIID riid,
  504.                 [in, iid_is(riid)] IUnknown* punk
  505.                 );
  506.  
  507. }
  508. cpp_quote("#endif")
  509.  
  510. //+---------------------------------------------------------------------------
  511. //
  512. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  513. //
  514. //  Contents:   IAuthenticate interface definition
  515. //
  516. //----------------------------------------------------------------------------
  517. cpp_quote("#ifndef _LPAUTHENTICATION_DEFINED")
  518. cpp_quote("#define _LPAUTHENTICATION_DEFINED")
  519.  
  520. [
  521.     local,
  522.     object,
  523.     uuid(79eac9d0-baf9-11ce-8c82-00aa004ba90b),
  524.     pointer_default(unique)
  525. ]
  526.  
  527.  
  528. interface IAuthenticate : IUnknown
  529. {
  530.     typedef [unique] IAuthenticate *LPAUTHENTICATION;
  531.  
  532.     HRESULT Authenticate(
  533.                 [out] HWND* phwnd,
  534.                 [out] LPWSTR *pszUsername,
  535.                 [out] LPWSTR *pszPassword
  536.                 );
  537. }
  538.  
  539. cpp_quote("#endif")
  540.  
  541.  
  542. //+---------------------------------------------------------------------------
  543. //
  544. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  545. //
  546. //  Contents:   IHttpNegotiate interface definition
  547. //
  548. //----------------------------------------------------------------------------
  549. cpp_quote("#ifndef _LPHTTPNEGOTIATE_DEFINED")
  550. cpp_quote("#define _LPHTTPNEGOTIATE_DEFINED")
  551.  
  552. [
  553.     object,
  554.     uuid(79eac9d2-baf9-11ce-8c82-00aa004ba90b),
  555.     pointer_default(unique)
  556. ]
  557.  
  558. interface IHttpNegotiate : IUnknown
  559. {
  560.     typedef [unique] IHttpNegotiate *LPHTTPNEGOTIATE;
  561.  
  562.     HRESULT BeginningTransaction(
  563.                 [in]  LPCWSTR szURL,
  564.                 [in]  LPCWSTR szHeaders,
  565.                 [in]  DWORD dwReserved,
  566.                 [out] LPWSTR *pszAdditionalHeaders
  567.                 );
  568.  
  569.     HRESULT OnResponse(
  570.                 [in]  DWORD dwResponseCode,
  571.                 [in]  LPCWSTR szResponseHeaders,
  572.                 [in]  LPCWSTR szRequestHeaders,
  573.                 [out] LPWSTR *pszAdditionalRequestHeaders
  574.                 );
  575. }
  576.  
  577. cpp_quote("#endif")
  578.  
  579.  
  580.  
  581. //+---------------------------------------------------------------------------
  582. //
  583. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  584. //
  585. //  Contents:   IWindowForBindingUI interface definition
  586. //
  587. //----------------------------------------------------------------------------
  588. cpp_quote("#ifndef _LPWINDOWFORBINDINGUI_DEFINED")
  589. cpp_quote("#define _LPWINDOWFORBINDINGUI_DEFINED")
  590.  
  591. [
  592.     local,
  593.     object,
  594.     uuid(79eac9d5-bafa-11ce-8c82-00aa004ba90b),
  595.     pointer_default(unique)
  596. ]
  597.  
  598. interface IWindowForBindingUI : IUnknown
  599. {
  600.     typedef [unique] IWindowForBindingUI *LPWINDOWFORBINDINGUI;
  601.  
  602.     HRESULT GetWindow(
  603.                 [in]  REFGUID rguidReason,
  604.                 [out] HWND* phwnd);
  605. }
  606.  
  607. cpp_quote("#endif")
  608.  
  609.  
  610. //+---------------------------------------------------------------------------
  611. //
  612. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  613. //
  614. //  Contents:   ICodeDownloadClient interface definition
  615. //
  616. //----------------------------------------------------------------------------
  617. cpp_quote("#ifndef _LPCODEINSTALL_DEFINED")
  618. cpp_quote("#define _LPCODEINSTALL_DEFINED")
  619.  
  620. [
  621.     local,
  622.     object,
  623.     uuid(79eac9d1-baf9-11ce-8c82-00aa004ba90b),
  624.     pointer_default(unique)
  625. ]
  626.  
  627.  
  628. interface ICodeInstall : IWindowForBindingUI
  629. {
  630.     typedef [unique] ICodeInstall *LPCODEINSTALL;
  631.  
  632.     typedef enum {
  633.         CIP_DISK_FULL,
  634.         CIP_ACCESS_DENIED,
  635.         CIP_NEWER_VERSION_EXISTS,
  636.         CIP_OLDER_VERSION_EXISTS,
  637.         CIP_NAME_CONFLICT,
  638.         CIP_TRUST_VERIFICATION_COMPONENT_MISSING,
  639.         CIP_EXE_SELF_REGISTERATION_TIMEOUT,
  640.         CIP_UNSAFE_TO_ABORT,
  641.         CIP_NEED_REBOOT
  642.     } CIP_STATUS;
  643.  
  644.     HRESULT OnCodeInstallProblem(
  645.             [in] ULONG ulStatusCode,            // contingency status
  646.             [in] LPCWSTR szDestination,         // file that needs to be updated
  647.             [in] LPCWSTR szSource,              // new version from 'net (a temp file)
  648.             [in] DWORD dwReserved               // for future use
  649.             );
  650.  
  651. }
  652.  
  653. cpp_quote("#endif")
  654.  
  655. //+---------------------------------------------------------------------------
  656. //
  657. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  658. //
  659. //  Contents:   IWinInetInfo interface definition
  660. //
  661. //----------------------------------------------------------------------------
  662. cpp_quote("#ifndef _LPWININETINFO_DEFINED")
  663. cpp_quote("#define _LPWININETINFO_DEFINED")
  664.  
  665. [
  666.     local,
  667.     object,
  668.     uuid(79eac9d6-bafa-11ce-8c82-00aa004ba90b),
  669.  
  670.     pointer_default(unique)
  671. ]
  672.  
  673. interface IWinInetInfo : IUnknown
  674. {
  675.  
  676.     typedef [unique] IWinInetInfo *LPWININETINFO;
  677.  
  678.     HRESULT QueryOption(
  679.             [in]      DWORD  dwOption,
  680.             [out]     LPVOID pBuffer,
  681.             [in, out] DWORD *pcbBuf);
  682.  
  683.  
  684. }
  685. cpp_quote("#endif")
  686.  
  687.  
  688.  
  689.  
  690. //+---------------------------------------------------------------------------
  691. //
  692. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  693. //
  694. //  Contents:   IHttpSecurity interface definition
  695. //
  696. //----------------------------------------------------------------------------
  697. cpp_quote("#ifndef _LPHTTPSECURITY_DEFINED")
  698. cpp_quote("#define _LPHTTPSECURITY_DEFINED")
  699.  
  700. [
  701.     local,
  702.     object,
  703.     uuid(79eac9d7-bafa-11ce-8c82-00aa004ba90b),
  704.  
  705.     pointer_default(unique)
  706. ]
  707.  
  708.  
  709. interface IHttpSecurity : IWindowForBindingUI
  710. {
  711.     typedef [unique] IHttpSecurity *LPHTTPSECURITY;
  712.  
  713.    HRESULT OnSecurityProblem(
  714.             [in] DWORD dwProblem);
  715.  
  716. }
  717. cpp_quote("#endif")
  718.  
  719.  
  720. //+---------------------------------------------------------------------------
  721. //
  722. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  723. //
  724. //  Contents:   IWinInetHttpInfo interface definition
  725. //
  726. //----------------------------------------------------------------------------
  727. cpp_quote("#ifndef _LPWININETHTTPINFO_DEFINED")
  728. cpp_quote("#define _LPWININETHTTPINFO_DEFINED")
  729.  
  730. [
  731.     local,
  732.     object,
  733.     uuid(79eac9d8-bafa-11ce-8c82-00aa004ba90b),
  734.  
  735.     pointer_default(unique)
  736. ]
  737.  
  738. interface IWinInetHttpInfo : IWinInetInfo
  739. {
  740.     typedef [unique] IWinInetHttpInfo *LPWININETHTTPINFO;
  741.  
  742.     HRESULT QueryInfo(
  743.             [in]      DWORD  dwOption,
  744.             [out]     LPVOID pBuffer,
  745.             [in, out] DWORD *pcbBuf,
  746.             [in, out] DWORD *pdwFlags,
  747.             [in, out] DWORD *pdwReserved
  748.             );
  749. }
  750. cpp_quote("#endif")
  751.  
  752. cpp_quote("#define SID_IBindHost IID_IBindHost")
  753. cpp_quote("#define SID_SBindHost IID_IBindHost")
  754.  
  755. //+---------------------------------------------------------------------------
  756. //
  757. //  Copyright (C) Microsoft Corporation, 1995 - 1996.
  758. //
  759. //  Contents:   IBindHost definition
  760. //
  761. //---------------------------------------------------------------------------
  762. cpp_quote("#ifndef _LPBINDHOST_DEFINED")
  763. cpp_quote("#define _LPBINDHOST_DEFINED")
  764.  
  765. cpp_quote("EXTERN_C const GUID SID_BindHost;")
  766. [
  767.         object,
  768.         uuid(fc4801a1-2ba9-11cf-a229-00aa003d7352),
  769.         pointer_default(unique)
  770. ]
  771. interface IBindHost : IUnknown
  772. {
  773.         typedef [unique] IBindHost *LPBINDHOST;
  774.  
  775.         HRESULT CreateMoniker(
  776.             [in]    LPOLESTR    szName,
  777.             [in]    IBindCtx   *pBC,
  778.             [out]   IMoniker**  ppmk,
  779.             [in]    DWORD       dwReserved);
  780.  
  781.         [local]
  782.         HRESULT MonikerBindToStorage(
  783.             [in]    IMoniker            *pMk,
  784.             [in]    IBindCtx            *pBC,
  785.             [in]    IBindStatusCallback *pBSC,
  786.             [in]    REFIID              riid,
  787.             [out]   void                **ppvObj);
  788.  
  789.         [call_as(MonikerBindToStorage)]
  790.         HRESULT RemoteMonikerBindToStorage(
  791.             [in, unique]    IMoniker            *pMk,
  792.             [in, unique]    IBindCtx            *pBC,
  793.             [in, unique]    IBindStatusCallback *pBSC,
  794.             [in]            REFIID riid,
  795.             [out, iid_is(riid)] IUnknown **ppvObj);
  796.  
  797.         [local]
  798.         HRESULT MonikerBindToObject(
  799.             [in]    IMoniker            *pMk,
  800.             [in]    IBindCtx            *pBC,
  801.             [in]    IBindStatusCallback *pBSC,
  802.             [in]    REFIID              riid,
  803.             [out]   void                **ppvObj);
  804.  
  805.         [call_as(MonikerBindToObject)]
  806.         HRESULT RemoteMonikerBindToObject(
  807.             [in, unique]    IMoniker            *pMk,
  808.             [in, unique]    IBindCtx            *pBC,
  809.             [in, unique]    IBindStatusCallback *pBSC,
  810.             [in]            REFIID riid,
  811.             [out, iid_is(riid)] IUnknown **ppvObj);
  812. }
  813.  
  814. cpp_quote("#endif")
  815.  
  816. // urlhlink stuff
  817. #pragma midl_echo("                                                                                                           ")
  818. cpp_quote("// These are for backwards compatibility with previous URLMON versions")
  819. #pragma midl_echo("// Flags for the UrlDownloadToCacheFile                                                                    ")
  820. #pragma midl_echo("#define URLOSTRM_USECACHEDCOPY_ONLY             0x1      // Only get from cache                            ")
  821. #pragma midl_echo("#define URLOSTRM_USECACHEDCOPY                  0x2      // Get from cache if available else download      ")
  822. #pragma midl_echo("#define URLOSTRM_GETNEWESTVERSION               0x3      // Get new version only. But put it in cache too  ")
  823. #pragma midl_echo("                                                                                                           ")
  824. #pragma midl_echo("                                                                                                           ")
  825. #pragma midl_echo("struct IBindStatusCallback;                                                                                ")
  826. #pragma midl_echo("STDAPI HlinkSimpleNavigateToString(                                                                        ")
  827. #pragma midl_echo("    /* [in] */ LPCWSTR szTarget,         // required - target document - null if local jump w/in doc       ")
  828. #pragma midl_echo("    /* [in] */ LPCWSTR szLocation,       // optional, for navigation into middle of a doc                  ")
  829. #pragma midl_echo("    /* [in] */ LPCWSTR szTargetFrameName,// optional, for targeting frame-sets                             ")
  830. #pragma midl_echo("    /* [in] */ IUnknown *pUnk,           // required - we'll search this for other necessary interfaces    ")
  831. #pragma midl_echo("    /* [in] */ IBindCtx *pbc,            // optional. caller may register an IBSC in this                  ")
  832. #pragma midl_echo("    /* [in] */ IBindStatusCallback *,                                                                      ")
  833. #pragma midl_echo("    /* [in] */ DWORD grfHLNF,            // flags                                                          ")
  834. #pragma midl_echo("    /* [in] */ DWORD dwReserved          // for future use, must be NULL                                   ")
  835. #pragma midl_echo(");                                                                                                         ")
  836. #pragma midl_echo("                                                                                                           ")
  837. #pragma midl_echo("STDAPI HlinkSimpleNavigateToMoniker(                                                                       ")
  838. #pragma midl_echo("    /* [in] */ IMoniker *pmkTarget,      // required - target document - (may be null                      ")
  839. #pragma midl_echo("    /* [in] */ LPCWSTR szLocation,       // optional, for navigation into middle of a doc                  ")
  840. #pragma midl_echo("    /* [in] */ LPCWSTR szTargetFrameName,// optional, for targeting frame-sets                             ")
  841. #pragma midl_echo("    /* [in] */ IUnknown *pUnk,           // required - we'll search this for other necessary interfaces    ")
  842. #pragma midl_echo("    /* [in] */ IBindCtx *pbc,            // optional. caller may register an IBSC in this                  ")
  843. #pragma midl_echo("    /* [in] */ IBindStatusCallback *,                                                                      ")
  844. #pragma midl_echo("    /* [in] */ DWORD grfHLNF,            // flags                                                          ")
  845. #pragma midl_echo("    /* [in] */ DWORD dwReserved          // for future use, must be NULL                                   ")
  846. #pragma midl_echo(");                                                                                                         ")
  847. //#pragma midl_echo("typedef HRESULT (STDAPICALLTYPE *LPFNUOSCALLBACK)(LPBINDSTATUSCALLBACK);                                   ")
  848. #pragma midl_echo("                                                                                                           ")
  849. #pragma midl_echo("STDAPI URLOpenStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);                                        ")
  850. #pragma midl_echo("STDAPI URLOpenStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);                                       ")
  851. #pragma midl_echo("STDAPI URLOpenPullStreamA(LPUNKNOWN,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);                                    ")
  852. #pragma midl_echo("STDAPI URLOpenPullStreamW(LPUNKNOWN,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);                                   ")
  853. #pragma midl_echo("STDAPI URLDownloadToFileA(LPUNKNOWN,LPCSTR,LPCSTR,DWORD,LPBINDSTATUSCALLBACK);                             ")
  854. #pragma midl_echo("STDAPI URLDownloadToFileW(LPUNKNOWN,LPCWSTR,LPCWSTR,DWORD,LPBINDSTATUSCALLBACK);                           ")
  855. #pragma midl_echo("STDAPI URLDownloadToCacheFileA(LPUNKNOWN,LPCSTR,LPTSTR,DWORD,DWORD,LPBINDSTATUSCALLBACK);                  ")
  856. #pragma midl_echo("STDAPI URLDownloadToCacheFileW(LPUNKNOWN,LPCWSTR,LPWSTR,DWORD,DWORD,LPBINDSTATUSCALLBACK);                 ")
  857. #pragma midl_echo("STDAPI URLOpenBlockingStreamA(LPUNKNOWN,LPCSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK);                      ")
  858. #pragma midl_echo("STDAPI URLOpenBlockingStreamW(LPUNKNOWN,LPCWSTR,LPSTREAM*,DWORD,LPBINDSTATUSCALLBACK);                     ")
  859. #pragma midl_echo("                                                                                                           ")
  860. #pragma midl_echo("#ifdef UNICODE                                                                                             ")
  861. #pragma midl_echo("#define URLOpenStream            URLOpenStreamW                                                            ")
  862. #pragma midl_echo("#define URLOpenPullStream        URLOpenPullStreamW                                                        ")
  863. #pragma midl_echo("#define URLDownloadToFile        URLDownloadToFileW                                                        ")
  864. #pragma midl_echo("#define URLDownloadToCacheFile   URLDownloadToCacheFileW                                                   ")
  865. #pragma midl_echo("#define URLOpenBlockingStream    URLOpenBlockingStreamW                                                    ")
  866. #pragma midl_echo("#else                                                                                                      ")
  867. #pragma midl_echo("#define URLOpenStream            URLOpenStreamA                                                            ")
  868. #pragma midl_echo("#define URLOpenPullStream        URLOpenPullStreamA                                                        ")
  869. #pragma midl_echo("#define URLDownloadToFile        URLDownloadToFileA                                                        ")
  870. #pragma midl_echo("#define URLDownloadToCacheFile   URLDownloadToCacheFileA                                                   ")
  871. #pragma midl_echo("#define URLOpenBlockingStream    URLOpenBlockingStreamA                                                    ")
  872. #pragma midl_echo("#endif // !UNICODE                                                                                         ")
  873. #pragma midl_echo("                                                                                                           ")
  874. #pragma midl_echo("                                                                                                           ")
  875. #pragma midl_echo("STDAPI HlinkGoBack(IUnknown *pUnk);                                                                        ")
  876. #pragma midl_echo("STDAPI HlinkGoForward(IUnknown *pUnk);                                                                     ")
  877. #pragma midl_echo("STDAPI HlinkNavigateString(IUnknown *pUnk, LPCWSTR szTarget);                                              ")
  878. #pragma midl_echo("STDAPI HlinkNavigateMoniker(IUnknown *pUnk, IMoniker *pmkTarget);                                          ")
  879. #pragma midl_echo("                                                                                                           ")
  880. // urlhlink end
  881.