mirror of https://github.com/lianthony/NT4.0
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.
51 lines
1.6 KiB
51 lines
1.6 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1993 - 1993.
|
|
//
|
|
// File: cmarshal.hxx
|
|
//
|
|
// Contents:
|
|
//
|
|
// Classes:
|
|
//
|
|
// Functions:
|
|
//
|
|
// History: 12-27-93 ErikGav Created
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
|
|
/*
|
|
* An implementation of the IMarshal interface that uses the
|
|
* IPersistStream interface to copy the object. Any object that
|
|
* supports IPersistStream may use this to implement marshalling
|
|
* by copying, rather than by reference.
|
|
*/
|
|
|
|
class FAR CMarshalImplPStream : public CPrivAlloc, public IMarshal
|
|
{
|
|
LPPERSISTSTREAM m_pPS;
|
|
SET_A5;
|
|
public:
|
|
CMarshalImplPStream( LPPERSISTSTREAM pPS );
|
|
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj);
|
|
STDMETHOD_(ULONG,AddRef) (THIS);
|
|
STDMETHOD_(ULONG,Release) (THIS);
|
|
|
|
// *** IMarshal methods ***
|
|
STDMETHOD(GetUnmarshalClass)(THIS_ REFIID riid, LPVOID pv,
|
|
DWORD dwDestContext, LPVOID pvDestContext,
|
|
DWORD mshlflags, LPCLSID pCid);
|
|
STDMETHOD(GetMarshalSizeMax)(THIS_ REFIID riid, LPVOID pv,
|
|
DWORD dwDestContext, LPVOID pvDestContext,
|
|
DWORD mshlflags, LPDWORD pSize);
|
|
STDMETHOD(MarshalInterface)(THIS_ IStream FAR* pStm, REFIID riid,
|
|
LPVOID pv, DWORD dwDestContext, LPVOID pvDestContext,
|
|
DWORD mshlflags);
|
|
STDMETHOD(UnmarshalInterface)(THIS_ IStream FAR* pStm, REFIID riid,
|
|
LPVOID FAR* ppv);
|
|
STDMETHOD(ReleaseMarshalData)(THIS_ IStream FAR* pStm);
|
|
STDMETHOD(DisconnectObject)(THIS_ DWORD dwReserved);
|
|
};
|