windows-nt/Source/XPSP1/NT/inetsrv/iis/svcs/w3/server/ftm.h
2020-09-26 16:20:57 +08:00

68 lines
1.9 KiB
C++

/*===================================================================
Microsoft IIS
Microsoft Confidential.
Copyright 1996, 1997, 1998 Microsoft Corporation. All Rights Reserved.
Component: Free Threaded Marshaller Base Class
File: ftm.h
Owner: Lei Jin
This is the free threaded marshaller base class header file
===================================================================*/
#ifndef _FTM_GLOBAL_H
#define _FTM_GLOBAL_H
#include <objbase.h>
class CFTMImplementation : public IMarshal
{
public:
STDMETHODIMP GetUnmarshalClass(
/* [in] */ REFIID riid,
/* [unique][in] */ void __RPC_FAR *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void __RPC_FAR *pvDestContext,
/* [in] */ DWORD mshlflags,
/* [out] */ CLSID __RPC_FAR *pCid);
STDMETHODIMP GetMarshalSizeMax(
/* [in] */ REFIID riid,
/* [unique][in] */ void __RPC_FAR *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void __RPC_FAR *pvDestContext,
/* [in] */ DWORD mshlflags,
/* [out] */ DWORD __RPC_FAR *pSize);
STDMETHODIMP MarshalInterface(
/* [unique][in] */ IStream __RPC_FAR *pStm,
/* [in] */ REFIID riid,
/* [unique][in] */ void __RPC_FAR *pv,
/* [in] */ DWORD dwDestContext,
/* [unique][in] */ void __RPC_FAR *pvDestContext,
/* [in] */ DWORD mshlflags);
STDMETHODIMP UnmarshalInterface(
/* [unique][in] */ IStream __RPC_FAR *pStm,
/* [in] */ REFIID riid,
/* [out] */ void __RPC_FAR *__RPC_FAR *ppv);
STDMETHODIMP ReleaseMarshalData(
/* [unique][in] */ IStream __RPC_FAR *pStm);
STDMETHODIMP DisconnectObject(
/* [in] */ DWORD dwReserved);
static HRESULT Init();
static HRESULT UnInit();
private:
// Global FTM pointer
static IMarshal * m_pFTM;
};
#endif _FTM_GLOBAL_H