Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

404 lines
17 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1992 - 1995.
  5. //
  6. // File: urlint.h
  7. //
  8. // Contents: internal include file for ulrmon project
  9. //
  10. // Classes:
  11. //
  12. // Functions:
  13. //
  14. // History: 10-25-95 JohannP (Johann Posch) Created
  15. //
  16. //----------------------------------------------------------------------------
  17. #ifndef _URLINT_H_
  18. #define _URLINT_H_
  19. #define _WITH_INTERNET_URL_ZONES_
  20. #ifdef ALPHA // required for Wx86 support
  21. #include <nt.h>
  22. #include <ntrtl.h>
  23. #include <nturtl.h>
  24. #endif
  25. #include <urlmki.h>
  26. #include <debug.h>
  27. #include <valid.h>
  28. #include <perftags.h>
  29. #include <crtsubst.h>
  30. #include <inetdbg.h> //for DEBUG_* macros/functions
  31. #ifndef ARRAYSIZE
  32. #define ARRAYSIZE(a) (sizeof(a)/sizeof(a[0]))
  33. #endif
  34. #if DBG==1
  35. #define XDBG(dbg,nondbg) dbg
  36. #else
  37. #define XDBG(dbg,nondbg) nondbg
  38. #endif
  39. #if DBG == 1
  40. //interface IDebugOut : public IUnknown
  41. #undef INTERFACE
  42. #define INTERFACE IDebugOut
  43. DECLARE_INTERFACE_(IDebugOut,IUnknown)
  44. {
  45. // *** IUnknown methods ***
  46. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  47. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  48. STDMETHOD_(ULONG,Release) (THIS) PURE;
  49. // *** IDebugOut methods ***
  50. STDMETHOD_(void, SendEntry) (THIS_ DWORD ThreadId, DWORD dwFlags, LPCSTR pstr, DWORD dwReserved) PURE;
  51. };
  52. #undef INTERFACE
  53. #define INTERFACE IDebugRegister
  54. DECLARE_INTERFACE_(IDebugRegister,IUnknown)
  55. {
  56. // *** IUnknown methods ***
  57. STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  58. STDMETHOD_(ULONG,AddRef) (THIS) PURE;
  59. STDMETHOD_(ULONG,Release) (THIS) PURE;
  60. // *** IDebugRegister methods ***
  61. STDMETHOD(GetFacilities) (THIS_ LPCWSTR *ppwzNames, DWORD *pcNames, DWORD dwReserved) PURE;
  62. STDMETHOD(Register) (THIS_ LPCWSTR pwzName, IDebugOut *pDbgOut, DWORD dwFlags, DWORD dwReserved) PURE;
  63. };
  64. // each thread can have it's own IDebugOut interface
  65. EXTERN_C HRESULT RegisterDebugOut(LPCWSTR pwzName, DWORD dwOptions, IDebugOut *pDbgOut, DWORD dwReserved);
  66. void UrlSpySendEntry(IDebugOut *pDbgOut, LPSTR szOutBuffer, DWORD ThreadId = 0, DWORD dwFlags = 0, DWORD dwReserved = 0);
  67. void UrlSpyFn(int iOption, const char *pscFormat, ...);
  68. #define PerfDbgTag(tag, szOwner, szDescrip, iOption) int tag = iOption;
  69. #define DbgTag(tag, szOwner, szDescrip, iOption) int tag = iOption;
  70. #define PerfDbgExtern(tag) extern int tag;
  71. #define DbgExtern(tag) extern int tag;
  72. #define PerfDbgLog(tag,pv,f) PerfDbgLogFn(tag,pv,f)
  73. #define PerfDbgLog1(tag,pv,f,a1) PerfDbgLogFn(tag,pv,f,a1)
  74. #define PerfDbgLog2(tag,pv,f,a1,a2) PerfDbgLogFn(tag,pv,f,a1,a2)
  75. #define PerfDbgLog3(tag,pv,f,a1,a2,a3) PerfDbgLogFn(tag,pv,f,a1,a2,a3)
  76. #define PerfDbgLog4(tag,pv,f,a1,a2,a3,a4) PerfDbgLogFn(tag,pv,f,a1,a2,a3,a4)
  77. #define PerfDbgLog5(tag,pv,f,a1,a2,a3,a4,a5) PerfDbgLogFn(tag,pv,f,a1,a2,a3,a4,a5)
  78. #define PerfDbgLog6(tag,pv,f,a1,a2,a3,a4,a5,a6) PerfDbgLogFn(tag,pv,f,a1,a2,a3,a4,a5,a6)
  79. #define PerfDbgLog7(tag,pv,f,a1,a2,a3,a4,a5,a6,a7) PerfDbgLogFn(tag,pv,f,a1,a2,a3,a4,a5,a6,a7)
  80. #define PerfDbgLog8(tag,pv,f,a1,a2,a3,a4,a5,a6,a7,a8) PerfDbgLogFn(tag,pv,f,a1,a2,a3,a4,a5,a6,a7,a8)
  81. #define PerfDbgLog9(tag,pv,f,a1,a2,a3,a4,a5,a6,a7,a8,a9) PerfDbgLogFn(tag,pv,f,a1,a2,a3,a4,a5,a6,a7,a8,a9)
  82. #define PerfDbgLogN(x) PerfDbgLogFn x
  83. #define DbgLog(tag,pv,f) PerfDbgLogFn(tag,pv,f)
  84. #define DbgLog1(tag,pv,f,a1) PerfDbgLogFn(tag,pv,f,a1)
  85. #define DbgLog2(tag,pv,f,a1,a2) PerfDbgLogFn(tag,pv,f,a1,a2)
  86. #define DbgLog3(tag,pv,f,a1,a2,a3) PerfDbgLogFn(tag,pv,f,a1,a2,a3)
  87. #define DbgLog4(tag,pv,f,a1,a2,a3,a4) PerfDbgLogFn(tag,pv,f,a1,a2,a3,a4)
  88. #define DbgLog5(tag,pv,f,a1,a2,a3,a4,a5) PerfDbgLogFn(tag,pv,f,a1,a2,a3,a4,a5)
  89. #define DbgLog6(tag,pv,f,a1,a2,a3,a4,a5,a6) PerfDbgLogFn(tag,pv,f,a1,a2,a3,a4,a5,a6)
  90. #define DbgLog7(tag,pv,f,a1,a2,a3,a4,a5,a6,a7) PerfDbgLogFn(tag,pv,f,a1,a2,a3,a4,a5,a6,a7)
  91. #define DbgLog8(tag,pv,f,a1,a2,a3,a4,a5,a6,a7,a8) PerfDbgLogFn(tag,pv,f,a1,a2,a3,a4,a5,a6,a7,a8)
  92. #define DbgLog9(tag,pv,f,a1,a2,a3,a4,a5,a6,a7,a8,a9) PerfDbgLogFn(tag,pv,f,a1,a2,a3,a4,a5,a6,a7,a8,a9)
  93. #define DbgLogN(x) PerfDbgLogFn x
  94. void PerfDbgLogFn(int tag, void * pvObj, const char * pchFmt, ...);
  95. # define DEB_LEVEL_SHIFT 28
  96. # define DEB_LEVEL_MASK 0x0FFFFFFF
  97. DECLARE_DEBUG(UrlMk)
  98. # define UrlMkUrlSpy UrlSpyFn
  99. # define UrlMkDebugOut(x) UrlMkUrlSpy x
  100. # define UrlMkAssert(x) Win4Assert(x)
  101. # define UrlMkVerify(x) UrlMkAssert(x)
  102. # define DEB_URLMK_LEVEL 0x00000000
  103. # define DEB_ASYNCAPIS (DEB_USER1 | DEB_URLMK_LEVEL)
  104. # define DEB_URLMON (DEB_USER2 | DEB_URLMK_LEVEL)
  105. # define DEB_ISTREAM (DEB_USER3 | DEB_URLMK_LEVEL)
  106. # define DEB_DLL (DEB_USER4 | DEB_URLMK_LEVEL)
  107. # define DEB_FORMAT (DEB_USER5 | DEB_URLMK_LEVEL)
  108. # define DEB_CODEDL (DEB_USER6 | DEB_URLMK_LEVEL)
  109. DECLARE_DEBUG(Trans)
  110. # define TransUrlSpy UrlSpyFn
  111. # define TransDebugOut(x) TransUrlSpy x
  112. # define TransAssert(x) Win4Assert(x)
  113. # define TransVerify(x) TransAssert(x)
  114. # define DEB_TRANS_LEVEL 0x10000000
  115. # define DEB_BINDING (DEB_USER1 | DEB_TRANS_LEVEL)
  116. # define DEB_TRANS (DEB_USER2 | DEB_TRANS_LEVEL)
  117. # define DEB_TRANSPACKET (DEB_USER3 | DEB_TRANS_LEVEL)
  118. # define DEB_DATA (DEB_USER4 | DEB_TRANS_LEVEL)
  119. # define DEB_TRANSMGR (DEB_USER5 | DEB_TRANS_LEVEL)
  120. # define DEB_SESSION (DEB_USER6 | DEB_TRANS_LEVEL)
  121. DECLARE_DEBUG(PProt)
  122. # define PProtUrlSpy UrlSpyFn
  123. # define PProtDebugOut(x) PProtUrlSpy x
  124. # define PProtAssert(x) Win4Assert(x)
  125. # define PProtVerify(x) PProtAssert(x)
  126. # define DEB_PROT_LEVEL 0x20000000
  127. # define DEB_PROT (DEB_USER1 | DEB_PROT_LEVEL)
  128. # define DEB_PROTHTTP (DEB_USER2 | DEB_PROT_LEVEL)
  129. # define DEB_PROTFTP (DEB_USER3 | DEB_PROT_LEVEL)
  130. # define DEB_PROTGOPHER (DEB_USER4 | DEB_PROT_LEVEL)
  131. # define DEB_PROTSIMP (DEB_USER5 | DEB_PROT_LEVEL)
  132. DECLARE_DEBUG(Notf)
  133. # define NotfUrlSpy UrlSpyFn
  134. # define NotfDebugOut(x) NotfUrlSpy x
  135. # define NotfAssert(x) Win4Assert(x)
  136. # define NotfVerify(x) NotfAssert(x)
  137. # define DEB_NOTF_LEVEL 0x30000000
  138. # define DEB_NOTF_1 (DEB_USER1 | DEB_NOTF_LEVEL)
  139. # define DEB_NOTF_2 (DEB_USER2 | DEB_NOTF_LEVEL)
  140. # define DEB_NOTF_3 (DEB_USER3 | DEB_NOTF_LEVEL)
  141. # define DEB_NOTF_4 (DEB_USER4 | DEB_NOTF_LEVEL)
  142. # define DEB_NOTF_5 (DEB_USER5 | DEB_NOTF_LEVEL)
  143. # define DEB_NOTF_6 (DEB_USER6 | DEB_NOTF_LEVEL)
  144. # define DEB_NOTF_7 (DEB_USER7 | DEB_NOTF_LEVEL)
  145. # define DEB_NOTF_8 (DEB_USER8 | DEB_NOTF_LEVEL)
  146. # define DEB_NOTF_9 (DEB_USER9 | DEB_NOTF_LEVEL)
  147. # define DEB_NOTF_10 (DEB_USER10 | DEB_NOTF_LEVEL)
  148. # define DEB_NOTF_11 (DEB_USER11 | DEB_NOTF_LEVEL)
  149. # define DEB_NOTF_12 (DEB_USER12 | DEB_NOTF_LEVEL)
  150. # define DEB_NOTF_13 (DEB_USER13 | DEB_NOTF_LEVEL)
  151. # define DEB_NOTF_14 (DEB_USER14 | DEB_NOTF_LEVEL)
  152. # define DEB_NOTF_15 (DEB_USER15 | DEB_NOTF_LEVEL)
  153. DECLARE_DEBUG(EProt)
  154. # define EProtUrlSpy UrlSpyFn
  155. # define EProtDebugOut(x) EProtUrlSpy x
  156. # define EProtAssert(x) Win4Assert(x)
  157. # define EProtVerify(x) EProtAssert(x)
  158. # define DEB_EPROT_LEVEL 0x40000000
  159. # define DEB_PLUGPROT (DEB_USER1 | DEB_EPROT_LEVEL)
  160. # define DEB_BASE (DEB_USER2 | DEB_EPROT_LEVEL)
  161. DECLARE_DEBUG(TNotf)
  162. # define TNotfUrlSpy UrlSpyFn
  163. # define TNotfDebugOut(x) TNotfUrlSpy x
  164. # define TNotfAssert(x) Win4Assert(x)
  165. # define TNotfVerify(x) TNotfAssert(x)
  166. # define DEB_TNOTF_LEVEL 0x50000000
  167. # define DEB_TNOTF_1 (DEB_USER1 | DEB_TNOTF_LEVEL)
  168. # define DEB_TNOTF_2 (DEB_USER2 | DEB_TNOTF_LEVEL)
  169. # define DEB_TNOTF_3 (DEB_USER3 | DEB_TNOTF_LEVEL)
  170. # define DEB_TNOTF_4 (DEB_USER4 | DEB_TNOTF_LEVEL)
  171. # define DEB_TNOTF_5 (DEB_USER5 | DEB_TNOTF_LEVEL)
  172. # define DEB_TNOTF_6 (DEB_USER6 | DEB_TNOTF_LEVEL)
  173. # define DEB_TNOTF_7 (DEB_USER7 | DEB_TNOTF_LEVEL)
  174. # define DEB_TNOTF_8 (DEB_USER8 | DEB_TNOTF_LEVEL)
  175. # define DEB_TNOTF_9 (DEB_USER9 | DEB_TNOTF_LEVEL)
  176. # define DEB_TNOTF_10 (DEB_USER10 | DEB_TNOTF_LEVEL)
  177. # define DEB_TNOTF_11 (DEB_USER11 | DEB_TNOTF_LEVEL)
  178. # define DEB_TNOTF_12 (DEB_USER12 | DEB_TNOTF_LEVEL)
  179. # define DEB_TNOTF_13 (DEB_USER13 | DEB_TNOTF_LEVEL)
  180. # define DEB_TNOTF_14 (DEB_USER14 | DEB_TNOTF_LEVEL)
  181. # define DEB_TNOTF_15 (DEB_USER15 | DEB_TNOTF_LEVEL)
  182. # define PPKG_DUMP(ptr, params) ptr->Dump params
  183. # define PLIST_DUMP(ptr, params) ptr->Dump params
  184. # define LIST_DUMP(obj, params) obj.Dump params
  185. # define SPEW_TIME(params) SpewTime params
  186. #else
  187. #define PerfDbgTag(tag, szOwner, szDescrip, iOption) PerfTag(tag, szOwner, szDescrip)
  188. #define DbgTag(tag, szOwner, szDescrip, iOption)
  189. #define PerfDbgExtern(tag) PerfExtern(tag)
  190. #define DbgExtern(tag)
  191. #define PerfDbgLog(tag,pv,f) PerfLog(tag,pv,f)
  192. #define PerfDbgLog1(tag,pv,f,a1) PerfLog1(tag,pv,f,a1)
  193. #define PerfDbgLog2(tag,pv,f,a1,a2) PerfLog2(tag,pv,f,a1,a2)
  194. #define PerfDbgLog3(tag,pv,f,a1,a2,a3) PerfLog3(tag,pv,f,a1,a2,a3)
  195. #define PerfDbgLog4(tag,pv,f,a1,a2,a3,a4) PerfLog4(tag,pv,f,a1,a2,a3,a4)
  196. #define PerfDbgLog5(tag,pv,f,a1,a2,a3,a4,a5) PerfLog5(tag,pv,f,a1,a2,a3,a4,a5)
  197. #define PerfDbgLog6(tag,pv,f,a1,a2,a3,a4,a5,a6) PerfLog6(tag,pv,f,a1,a2,a3,a4,a5,a6)
  198. #define PerfDbgLog7(tag,pv,f,a1,a2,a3,a4,a5,a6,a7) PerfLog7(tag,pv,f,a1,a2,a3,a4,a5,a6,a7)
  199. #define PerfDbgLog8(tag,pv,f,a1,a2,a3,a4,a5,a6,a7,a8) PerfLog8(tag,pv,f,a1,a2,a3,a4,a5,a6,a7,a8)
  200. #define PerfDbgLog9(tag,pv,f,a1,a2,a3,a4,a5,a6,a7,a8,a9) PerfLog9(tag,pv,f,a1,a2,a3,a4,a5,a6,a7,a8,a9)
  201. #define PerfDbgLogN(x) PerfLogFn x
  202. #define DbgLog(tag,pv,f)
  203. #define DbgLog1(tag,pv,f,a1)
  204. #define DbgLog2(tag,pv,f,a1,a2)
  205. #define DbgLog3(tag,pv,f,a1,a2,a3)
  206. #define DbgLog4(tag,pv,f,a1,a2,a3,a4)
  207. #define DbgLog5(tag,pv,f,a1,a2,a3,a4,a5)
  208. #define DbgLog6(tag,pv,f,a1,a2,a3,a4,a5,a6)
  209. #define DbgLog7(tag,pv,f,a1,a2,a3,a4,a5,a6,a7)
  210. #define DbgLog8(tag,pv,f,a1,a2,a3,a4,a5,a6,a7,a8)
  211. #define DbgLog9(tag,pv,f,a1,a2,a3,a4,a5,a6,a7,a8,a9)
  212. #define DbgLogN(x)
  213. #define PPKG_DUMP(ptr, params)
  214. #define PLIST_DUMP(ptr, params)
  215. #define LIST_DUMP(obj, params)
  216. #define SPEW_TIME(params)
  217. #if DBGASSERT == 1
  218. # define UrlMkAssert(x) (void) ((x) || (DebugBreak(),0))
  219. # define TransAssert(x) (void) ((x) || (DebugBreak(),0))
  220. # define PProtAssert(x) (void) ((x) || (DebugBreak(),0))
  221. # define EProtAssert(x) (void) ((x) || (DebugBreak(),0))
  222. # define NotfAssert(x) (void) ((x) || (DebugBreak(),0))
  223. # define UrlMkDebugOut(x)
  224. # define UrlMkVerify(x) x
  225. # define TransDebugOut(x)
  226. # define TransVerify(x) x
  227. # define PProtDebugOut(x)
  228. # define PProtVerify(x) x
  229. # define NotfDebugOut(x)
  230. # define NotfVerify(x) x
  231. # define TNotfDebugOut(x)
  232. # define TNotfVerify(x) x
  233. #else
  234. # define UrlMkDebugOut(x)
  235. # define UrlMkAssert(x)
  236. # define UrlMkVerify(x) x
  237. # define TransDebugOut(x)
  238. # define TransAssert(x)
  239. # define TransVerify(x) x
  240. # define PProtDebugOut(x)
  241. # define PProtAssert(x)
  242. # define PProtVerify(x) x
  243. # define NotfDebugOut(x)
  244. # define NotfAssert(x)
  245. # define NotfVerify(x) x
  246. # define TNotfDebugOut(x)
  247. # define TNotfAssert(x)
  248. # define TNotfVerify(x) x
  249. # define EProtDebugOut(x)
  250. # define EProtAssert(x)
  251. # define EProtVerify(x) x
  252. #endif
  253. #endif
  254. HRESULT GetClassMime(LPSTR pszMime, CLSID *pclsid, BOOL fIgnoreMimeClsid=FALSE);
  255. STDAPI GetClassFileOrMime2(LPBC pBC, LPCWSTR pwzFilename, LPVOID pBuffer, DWORD cbSize,
  256. LPCWSTR pwzMimeIn, DWORD dwReserved, CLSID *pclsid, BOOL fIgnoreMimeClsid);
  257. HWND GetThreadNotificationWnd(BOOL fCreate = TRUE);
  258. // messages for URLMON's private window on client's thread
  259. #define WM_URLMON_BASE WM_USER+100
  260. #define WM_TRANS_FIRST WM_URLMON_BASE+1
  261. #define WM_TRANS_PACKET WM_URLMON_BASE+1
  262. #define WM_TRANS_NOPACKET WM_URLMON_BASE+2
  263. #define WM_TRANS_OUTOFMEMORY WM_URLMON_BASE+3
  264. #define WM_TRANS_INTERNAL WM_URLMON_BASE+4
  265. #define WM_CODE_DOWNLOAD_SETUP WM_URLMON_BASE+5
  266. #define WM_CODE_DOWNLOAD_TRUST_PIECE WM_URMLON_BASE+6
  267. #define WM_CODE_DOWNLOAD_PROCESS_PIECE WM_URLMON_BASE+7
  268. #define WM_CODE_DOWNLOAD_PROCESS_INF WM_URLMON_BASE+8
  269. #define WM_THREADPACKET_POST WM_URLMON_BASE+9
  270. #define WM_THREADPACKET_SEND WM_URLMON_BASE+10
  271. #define WM_THREADPACKET_NOTIFY WM_URLMON_BASE+11
  272. #define WM_THREADPACKET_INPUTSYNC WM_URLMON_BASE+12
  273. #define WM_PROCESSPACKET_POST WM_URLMON_BASE+13
  274. #define WM_PROCESSPACKET_SEND WM_URLMON_BASE+14
  275. #define WM_PROCESSWAKEUP WM_URLMON_BASE+15
  276. #define WM_THREADPACKET_PRIVATE3 WM_URLMON_BASE+16
  277. #define WM_SYNC_DEF_PROC_NOTIFICATIONS WM_URLMON_BASE+17
  278. #define WM_TRANS_LAST WM_URLMON_BASE+17
  279. #define NOTF_SCHED_TIMER 0xABC123
  280. #define NOTF_DELAY_TIMER 0xDEF456
  281. #define IID_IAsyncURLMoniker IID_IMoniker
  282. #define E_RETRY RPC_E_RETRY
  283. #ifdef UNUSED
  284. #undef VDATEPTROUT
  285. #undef VDATEPTRIN
  286. #undef VDATEIFACE
  287. #undef VDATEIID
  288. #define VDATEPTROUT(p, n)
  289. #define VDATEPTRIN(p, n)
  290. #define VDATETHIS(t)
  291. #define VDATEIFACE(x)
  292. #define VDATEIID(x)
  293. #endif //UNUSED
  294. #ifndef VDATETHIS
  295. #define VDATETHIS(t) VDATEIFACE(t)
  296. #endif
  297. // prototypes
  298. EXTERN_C const IID IID_IAsyncBindCtx;
  299. // Internal Helper API's
  300. void DllAddRef(void);
  301. void DllRelease(void);
  302. #undef URLMONOFFSETOF
  303. #define URLMONOFFSETOF(t,f) ((DWORD_PTR)(&((t*)0)->f))
  304. #define REG_BSCB_HOLDER OLESTR("_BSCB_Holder_")
  305. #define REG_ENUMFORMATETC OLESTR("_EnumFORMATETC_")
  306. #define REG_MEDIA_HOLDER OLESTR("_Media_Holder_")
  307. #define SZ_TRANSACTIONDATA OLESTR("_ITransData_Object_")
  308. #define SZ_TRANSACTION OLESTR("_ITransaction_Object_")
  309. #define SZ_BINDING OLESTR("CBinding Context")
  310. #define SZ_IUNKNOWN_PTR OLESTR("IUnknown Pointer")
  311. #if DBG==1
  312. HRESULT DumpIID(REFIID riid);
  313. #else
  314. #define DumpIID(x)
  315. #endif
  316. // Needed for linking with static C runtime LIBCMT.LIB
  317. // Remove when linking to external C runtime DLL
  318. //#define strnicmp _strnicmp
  319. #define wcsnicmp _wcsnicmp
  320. //#define itoa _itoa
  321. //#define stricmp _stricmp // URLBIND uses this one.
  322. #define wcsicmp _wcsicmp
  323. // old flags used inside urlmon
  324. typedef enum
  325. {
  326. BSCO_ONSTARTBINDING = 0x00000001,
  327. BSCO_GETPRIORITY = 0x00000002,
  328. BSCO_ONLOWRESOURCE = 0x00000004,
  329. BSCO_ONPROGRESS = 0x00000008,
  330. BSCO_ONSTOPBINDING = 0x00000010,
  331. BSCO_GETBINDINFO = 0x00000020,
  332. BSCO_ONDATAAVAILABLE = 0x00000040,
  333. BSCO_ONOBJECTAVAILABLE = 0x00000080,
  334. BSCO_ALLONIBSC = 0x000000FF,
  335. BSCO_ALLONIBDGSITE = 0x0000001F
  336. } BSCO_OPTION;
  337. // flags for the reserved parameter dwReserved of GetClassFileOrMime API
  338. typedef enum
  339. {
  340. GETCLASSFILEORMIME_IGNOREPLUGIN = 0x00000001
  341. } GETCLASSFILEORMIME_FLAGS;
  342. #endif //_URLINT_H_