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.

549 lines
9.6 KiB

  1. /*++
  2. Copyright (c) 1994 Microsoft Corporation
  3. Module Name:
  4. inetp.h
  5. Abstract:
  6. Contains the Internet Gateway Service private functions proto type
  7. definitions.
  8. Author:
  9. Madan Appiah (madana) 11-Nov-1994
  10. Environment:
  11. User Mode - Win32 - MIDL
  12. Revision History:
  13. --*/
  14. #ifndef _INETP_
  15. #define _INETP_
  16. #if defined(__cplusplus)
  17. extern "C" {
  18. #endif
  19. //
  20. // manifests
  21. //
  22. //
  23. // flags for close functions
  24. //
  25. #define CF_EXPEDITED_CLOSE 0x00000001
  26. //
  27. // define used to expire entries
  28. //
  29. #define ONE_HOUR_DELTA (60 * 60 * (LONGLONG)10000000)
  30. //
  31. // define signature for LockRequestInfo structure
  32. //
  33. #define LOCK_REQUEST_SIGNATURE 0xAA55AA55
  34. //
  35. // types
  36. //
  37. typedef enum {
  38. TypeGenericHandle = 'HneG',
  39. TypeInternetHandle = 'tenI',
  40. TypeFtpConnectHandle = 'noCF',
  41. TypeFtpFindHandle = 'dnFF',
  42. TypeFtpFindHandleHtml = 'HnFF',
  43. TypeFtpFileHandle = 'liFF',
  44. TypeFtpFileHandleHtml = 'HlFF',
  45. TypeGopherConnectHandle = 'noCG',
  46. TypeGopherFindHandle = 'dnFG',
  47. TypeGopherFindHandleHtml = 'HnFG',
  48. TypeGopherFileHandle = 'liFG',
  49. TypeGopherFileHandleHtml = 'HlFG',
  50. TypeHttpConnectHandle = 'noCH',
  51. TypeHttpRequestHandle = 'qeRH',
  52. TypeFileRequestHandle = 'flRH',
  53. TypeWildHandle = 'dliW'
  54. } HINTERNET_HANDLE_TYPE, *LPHINTERNET_HANDLE_TYPE;
  55. typedef enum {
  56. HTML_STATE_INVALID,
  57. HTML_STATE_START,
  58. HTML_STATE_HEADER,
  59. HTML_STATE_WELCOME,
  60. HTML_STATE_DIR_HEADER,
  61. HTML_STATE_BODY,
  62. HTML_STATE_DIR_FOOTER,
  63. HTML_STATE_FOOTER,
  64. #ifdef EXTENDED_ERROR_HTML
  65. HTML_STATE_END,
  66. HTML_STATE_ERROR_BODY
  67. #else
  68. HTML_STATE_END
  69. #endif
  70. } HTML_STATE, *LPHTML_STATE;
  71. typedef enum {
  72. READ_BUFFER_SIZE_INDEX,
  73. WRITE_BUFFER_SIZE_INDEX
  74. } BUFFER_SIZE_INDEX;
  75. typedef struct {
  76. DWORD dwSignature;
  77. DWORD dwSize;
  78. DWORD dwCount;
  79. BOOL fNoCacheLookup;
  80. BOOL fNoDelete;
  81. HANDLE hFile;
  82. LPSTR UrlName;
  83. LPSTR FileName;
  84. char rgBuff[1];
  85. }
  86. LOCK_REQUEST_INFO, *LPLOCK_REQUEST_INFO;
  87. //
  88. // typedef virtual close function.
  89. //
  90. typedef BOOL ( *CLOSE_HANDLE_FUNC ) ( HINTERNET );
  91. typedef BOOL ( *CONNECT_CLOSE_HANDLE_FUNC ) ( HINTERNET, DWORD );
  92. //
  93. // prototypes
  94. //
  95. BOOL
  96. _InternetCloseHandle(
  97. IN HINTERNET hInternet
  98. );
  99. DWORD
  100. _InternetCloseHandleNoContext(
  101. IN HINTERNET hInternet
  102. );
  103. //
  104. // remote/RPC/object functions
  105. //
  106. DWORD
  107. RIsHandleLocal(
  108. HINTERNET Handle,
  109. BOOL * IsLocalHandle,
  110. BOOL * IsAsyncHandle,
  111. HINTERNET_HANDLE_TYPE ExpectedHandleType
  112. );
  113. DWORD
  114. RGetHandleType(
  115. HINTERNET Handle,
  116. LPHINTERNET_HANDLE_TYPE HandleType
  117. );
  118. DWORD
  119. RSetHtmlHandleType(
  120. HINTERNET Handle
  121. );
  122. DWORD
  123. RSetHtmlState(
  124. HINTERNET Handle,
  125. HTML_STATE State
  126. );
  127. DWORD
  128. RGetHtmlState(
  129. HINTERNET Handle,
  130. LPHTML_STATE lpState
  131. );
  132. DWORD
  133. RSetUrl(
  134. HINTERNET Handle,
  135. LPSTR lpszUrl
  136. );
  137. DWORD
  138. RGetUrl(
  139. HINTERNET Handle,
  140. LPSTR* lpszUrl
  141. );
  142. DWORD
  143. RSetDirEntry(
  144. HINTERNET Handle,
  145. LPSTR lpszDirEntry
  146. );
  147. DWORD
  148. RGetDirEntry(
  149. HINTERNET Handle,
  150. LPSTR* lpszDirEntry
  151. );
  152. DWORD
  153. RSetParentHandle(
  154. HINTERNET hChild,
  155. HINTERNET hParent,
  156. BOOL DeleteWithChild
  157. );
  158. DWORD
  159. RGetParentHandle(
  160. HINTERNET hChild,
  161. LPHINTERNET lphParent
  162. );
  163. DWORD
  164. RGetContext(
  165. HINTERNET hInternet,
  166. DWORD_PTR *lpdwContext
  167. );
  168. DWORD
  169. RSetContext(
  170. HINTERNET hInternet,
  171. DWORD_PTR dwContext
  172. );
  173. DWORD
  174. RGetTimeout(
  175. HINTERNET hInternet,
  176. DWORD dwTimeoutOption,
  177. LPDWORD lpdwTimeoutValue
  178. );
  179. DWORD
  180. RSetTimeout(
  181. HINTERNET hInternet,
  182. DWORD dwTimeoutOption,
  183. DWORD dwTimeoutValue
  184. );
  185. DWORD
  186. RGetBufferSize(
  187. HINTERNET hInternet,
  188. DWORD dwBufferSizeOption,
  189. LPDWORD lpdwBufferSize
  190. );
  191. DWORD
  192. RSetBufferSize(
  193. HINTERNET hInternet,
  194. DWORD dwBufferSizeOption,
  195. DWORD dwBufferSize
  196. );
  197. DWORD
  198. RGetStatusCallback(
  199. IN HINTERNET Handle,
  200. OUT LPINTERNET_STATUS_CALLBACK lpStatusCallback
  201. );
  202. DWORD
  203. RExchangeStatusCallback(
  204. IN HINTERNET Handle,
  205. IN OUT LPINTERNET_STATUS_CALLBACK lpStatusCallback,
  206. IN BOOL fType
  207. );
  208. DWORD
  209. RAddAsyncRequest(
  210. IN HINTERNET Handle,
  211. BOOL fNoCallbackOK
  212. );
  213. DWORD
  214. RRemoveAsyncRequest(
  215. IN HINTERNET Handle
  216. );
  217. DWORD
  218. RMakeInternetConnectObjectHandle(
  219. HINTERNET ParentHandle,
  220. HINTERNET *ChildHandle,
  221. CONNECT_CLOSE_HANDLE_FUNC wCloseFunc,
  222. LPSTR lpszServerName,
  223. INTERNET_PORT nServerPort,
  224. LPSTR lpszUserName,
  225. LPSTR lpszPassword,
  226. DWORD ServiceType,
  227. DWORD dwFlags,
  228. DWORD_PTR dwContext
  229. );
  230. HINTERNET
  231. FindExistingConnectObject(
  232. IN HINTERNET hInternet,
  233. IN LPSTR lpHostName,
  234. IN INTERNET_PORT nPort,
  235. IN LPSTR lpszUserName,
  236. IN LPSTR lpszPassword,
  237. IN DWORD dwServiceType,
  238. IN DWORD dwFlags,
  239. IN DWORD_PTR dwContext
  240. );
  241. INT
  242. FlushExistingConnectObjects(
  243. IN HINTERNET hInternet
  244. );
  245. DWORD
  246. RMakeGfrFindObjectHandle(
  247. HINTERNET ParentHandle,
  248. HINTERNET *ChildHandle,
  249. CLOSE_HANDLE_FUNC wCloseFunc,
  250. DWORD_PTR dwContext
  251. );
  252. DWORD
  253. RMakeGfrFixedObjectHandle(
  254. HINTERNET ParentHandle,
  255. HINTERNET *ChildHandle,
  256. DWORD dwFixedType
  257. );
  258. DWORD
  259. RMakeGfrFileObjectHandle(
  260. HINTERNET ParentHandle,
  261. HINTERNET *ChildHandle,
  262. CLOSE_HANDLE_FUNC wCloseFunc,
  263. DWORD_PTR dwContext
  264. );
  265. DWORD
  266. RGetLocalHandle(
  267. HINTERNET Handle,
  268. HINTERNET *LocalHandle
  269. );
  270. DWORD
  271. RMakeHttpReqObjectHandle(
  272. HINTERNET ParentHandle,
  273. HINTERNET *ChildHandle,
  274. CLOSE_HANDLE_FUNC wCloseFunc,
  275. DWORD dwFlags,
  276. DWORD_PTR dwContext
  277. );
  278. //
  279. // FTP remote functions
  280. //
  281. DWORD
  282. RMakeFtpFindObjectHandle(
  283. HINTERNET ParentHandle,
  284. HINTERNET *ChildHandle,
  285. CLOSE_HANDLE_FUNC wCloseFunc,
  286. DWORD_PTR dwContext
  287. );
  288. DWORD
  289. RMakeFtpFileObjectHandle(
  290. HINTERNET ParentHandle,
  291. HINTERNET *ChildHandle,
  292. CLOSE_HANDLE_FUNC wCloseFunc,
  293. DWORD_PTR dwContext
  294. );
  295. //
  296. // non-exported Internet subordinate functions
  297. //
  298. BOOL
  299. FtpFindNextFileA(
  300. IN HINTERNET hFtpSession,
  301. OUT LPWIN32_FIND_DATA lpFindFileData
  302. );
  303. BOOL
  304. FtpReadFile(
  305. IN HINTERNET hFtpSession,
  306. IN LPVOID lpBuffer,
  307. IN DWORD dwNumberOfBytesToRead,
  308. OUT LPDWORD lpdwNumberOfBytesRead
  309. );
  310. BOOL
  311. FtpWriteFile(
  312. IN HINTERNET hFtpSession,
  313. IN LPVOID lpBuffer,
  314. IN DWORD dwNumberOfBytesToWrite,
  315. OUT LPDWORD lpdwNumberOfBytesWritten
  316. );
  317. BOOL
  318. FtpCloseFile(
  319. IN HINTERNET hFtpSession
  320. );
  321. BOOL
  322. GopherFindNextA(
  323. IN HINTERNET hGopherFind,
  324. OUT LPGOPHER_FIND_DATA lpFindFileData
  325. );
  326. BOOL
  327. GopherReadFile(
  328. IN HINTERNET hGopherFile,
  329. IN LPVOID lpBuffer,
  330. IN DWORD dwNumberOfBytesToRead,
  331. OUT LPDWORD lpdwNumberOfBytesRead
  332. );
  333. DWORD
  334. HttpWriteData(
  335. IN HINTERNET hRequest,
  336. OUT LPVOID lpBuffer,
  337. IN DWORD dwNumberOfBytesToWrite,
  338. OUT LPDWORD lpdwNumberOfBytesWritten,
  339. IN DWORD dwSocketFlags
  340. );
  341. DWORD
  342. HttpReadData(
  343. IN HINTERNET hHttpRequest,
  344. OUT LPVOID lpBuffer,
  345. IN DWORD dwNumberOfBytesToRead,
  346. OUT LPDWORD lpdwNumberOfBytesRead,
  347. IN DWORD dwSocketFlags
  348. );
  349. PUBLIC
  350. DWORD
  351. wHttpAddRequestHeaders(
  352. IN HINTERNET hRequest,
  353. IN LPCSTR lpszHeaders,
  354. IN DWORD dwHeadersLength,
  355. IN DWORD dwModifiers
  356. );
  357. DWORD
  358. wFtpConnect(
  359. IN LPCSTR pszFtpSite,
  360. IN INTERNET_PORT nServerPort,
  361. IN LPCSTR pszUsername,
  362. IN LPCSTR pszPassword,
  363. IN DWORD dwService,
  364. IN DWORD dwFlags,
  365. OUT LPHINTERNET lphInternet
  366. );
  367. DWORD
  368. wFtpMakeConnection(
  369. IN HINTERNET hFtpSession,
  370. IN LPCSTR pszUsername,
  371. IN LPCSTR pszPassword
  372. );
  373. DWORD
  374. wFtpDisconnect(
  375. IN HINTERNET hFtpSession,
  376. IN DWORD dwFlags
  377. );
  378. DWORD
  379. wFtpQueryDataAvailable(
  380. IN HINTERNET hFtpSession,
  381. OUT LPDWORD lpdwNumberOfBytesAvailable
  382. );
  383. DWORD
  384. wGopherQueryDataAvailable(
  385. IN HINTERNET hFile,
  386. OUT LPDWORD lpdwNumberOfBytesAvailable
  387. );
  388. DWORD
  389. pHttpGetUrlInfo(
  390. IN HANDLE RequestHandle,
  391. IN LPBYTE Headers,
  392. IN DWORD HeadersLength,
  393. IN LPBYTE UrlBuf,
  394. IN OUT DWORD *UrlBufLen,
  395. IN BOOL ReloadFlagCheck
  396. );
  397. DWORD
  398. pFtpGetUrlString(
  399. IN LPSTR lpszTargetName,
  400. IN LPSTR lpszCWD,
  401. IN LPSTR lpszObjectName,
  402. IN LPSTR lpszExtension,
  403. IN DWORD dwPort,
  404. OUT LPSTR *lplpUrlName,
  405. OUT LPDWORD lpdwUrlLen
  406. );
  407. DWORD
  408. pFtpGetUrlInfo(
  409. IN HANDLE InternetConnectHandle,
  410. OUT LPSTR Url
  411. );
  412. DWORD
  413. pGopherGetUrlString(
  414. IN LPSTR lpszTargetName,
  415. IN LPSTR lpszCWD,
  416. IN LPSTR lpszObjectName,
  417. IN LPSTR lpszExtension,
  418. IN DWORD dwPort,
  419. OUT LPSTR *lplpUrlName,
  420. OUT LPDWORD lpdwUrlLen
  421. );
  422. DWORD
  423. pGfrGetUrlInfo(
  424. IN HANDLE InternetConnectHandle,
  425. OUT LPSTR Url
  426. );
  427. DWORD
  428. InbLocalEndCacheWrite(
  429. IN HINTERNET hFtpFile,
  430. IN LPSTR lpszFileExtension,
  431. IN BOOL fNormal
  432. );
  433. DWORD
  434. InbGopherLocalEndCacheWrite(
  435. IN HINTERNET hGopherFile,
  436. IN LPSTR lpszFileExtension,
  437. IN BOOL fNormal
  438. );
  439. BOOL
  440. GetCurrentSettingsVersion(
  441. LPDWORD lpdwVer
  442. );
  443. BOOL
  444. IncrementCurrentSettingsVersion(
  445. LPDWORD lpdwVer
  446. );
  447. extern DWORD GlobalSettingsVersion;
  448. extern BOOL GlobalSettingsLoaded;
  449. extern const char vszSyncMode[];
  450. extern const char vszInvalidFilenameChars[];
  451. #if defined(__cplusplus)
  452. }
  453. #endif
  454. #endif // _INETP_