68 lines
1.9 KiB
C++
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
|