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.
 
 
 
 
 
 

154 lines
3.6 KiB

//+---------------------------------------------------------------------------
//
// Microsoft Windows NT Security
// Copyright (C) Microsoft Corporation, 1997 - 1999
//
// File: inetsp.h
//
// Contents: Inet (HTTP, HTTPS) scheme provider definitions
//
// History: 05-Aug-97 kirtd Created
// 01-Jan-02 philh Moved from wininet to winhttp
//
//----------------------------------------------------------------------------
#if !defined(__INETSP_H__)
#define __INETSP_H__
#include <orm.h>
#include <winhttp.h>
//
// Inet scheme provider entry points
//
#define HTTP_SCHEME "http"
extern HCRYPTTLS hCryptNetCancelTls;
typedef struct _CRYPTNET_CANCEL_BLOCK {
PFN_CRYPT_CANCEL_RETRIEVAL pfnCancel;
void *pvArg;
} CRYPTNET_CANCEL_BLOCK, *PCRYPTNET_CANCEL_BLOCK;
BOOL WINAPI InetRetrieveEncodedObject (
IN LPCWSTR pwszUrl,
IN LPCSTR pszObjectOid,
IN DWORD dwRetrievalFlags,
IN DWORD dwTimeout,
OUT PCRYPT_BLOB_ARRAY pObject,
OUT PFN_FREE_ENCODED_OBJECT_FUNC* ppfnFreeObject,
OUT LPVOID* ppvFreeContext,
IN HCRYPTASYNC hAsyncRetrieve,
IN PCRYPT_CREDENTIALS pCredentials,
IN PCRYPT_RETRIEVE_AUX_INFO pAuxInfo
);
VOID WINAPI InetFreeEncodedObject (
IN LPCSTR pszObjectOid,
IN PCRYPT_BLOB_ARRAY pObject,
IN LPVOID pvFreeContext
);
BOOL WINAPI InetCancelAsyncRetrieval (
IN HCRYPTASYNC hAsyncRetrieve
);
//
// Inet Synchronous Object Retriever
//
class CInetSynchronousRetriever : public IObjectRetriever
{
public:
//
// Construction
//
CInetSynchronousRetriever ();
~CInetSynchronousRetriever ();
//
// IRefCountedObject methods
//
virtual VOID AddRef ();
virtual VOID Release ();
//
// IObjectRetriever methods
//
virtual BOOL RetrieveObjectByUrl (
LPCWSTR pwszUrl,
LPCSTR pszObjectOid,
DWORD dwRetrievalFlags,
DWORD dwTimeout,
LPVOID* ppvObject,
PFN_FREE_ENCODED_OBJECT_FUNC* ppfnFreeObject,
LPVOID* ppvFreeContext,
HCRYPTASYNC hAsyncRetrieve,
PCRYPT_CREDENTIALS pCredentials,
LPVOID pvVerify,
PCRYPT_RETRIEVE_AUX_INFO pAuxInfo
);
virtual BOOL CancelAsyncRetrieval ();
private:
//
// Reference count
//
ULONG m_cRefs;
};
//
// Inet Scheme Provider Support API
//
#define INET_INITIAL_DATA_BUFFER_SIZE 4096
#define INET_GROW_DATA_BUFFER_SIZE 4096
BOOL
InetGetBindings (
LPCWSTR pwszUrl,
DWORD dwRetrievalFlags,
DWORD dwTimeout,
HINTERNET* phInetSession
);
VOID
InetFreeBindings (
HINTERNET hInetSession
);
BOOL
InetSendReceiveUrlRequest (
HINTERNET hInetSession,
LPCWSTR pwszUrl,
DWORD dwRetrievalFlags,
PCRYPT_CREDENTIALS pCredentials,
PCRYPT_BLOB_ARRAY pcba,
PCRYPT_RETRIEVE_AUX_INFO pAuxInfo
);
VOID
InetFreeCryptBlobArray (
PCRYPT_BLOB_ARRAY pcba
);
VOID WINAPI
InetAsyncStatusCallback (
HINTERNET hInet,
DWORD dwContext,
DWORD dwInternetStatus,
LPVOID pvStatusInfo,
DWORD dwStatusLength
);
#endif