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.
88 lines
3.0 KiB
88 lines
3.0 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1993 - 1993.
|
|
//
|
|
// File: cptrmon.hxx
|
|
//
|
|
// Contents:
|
|
//
|
|
// Classes:
|
|
//
|
|
// Functions:
|
|
//
|
|
// History: 12-27-93 ErikGav Commented
|
|
// 07-06-95 BruceMa Make remotable
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
|
|
class FAR CPointerMoniker : public CBaseMoniker, public IMarshal
|
|
{
|
|
|
|
public:
|
|
static CPointerMoniker *Create(LPUNKNOWN pUnk);
|
|
|
|
friend CPointerMoniker *IsPointerMoniker(LPMONIKER pmk);
|
|
|
|
private:
|
|
|
|
CPointerMoniker( LPUNKNOWN pUnk );
|
|
~CPointerMoniker( void );
|
|
|
|
STDDEBDECL(CPointerMoniker, PointerMoniker)
|
|
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface) (THIS_ REFIID iid, LPVOID *ppvObj);
|
|
STDMETHOD_(ULONG,AddRef) (THIS);
|
|
STDMETHOD_(ULONG,Release) (THIS);
|
|
|
|
// *** IPersist methods ***
|
|
STDMETHOD(GetClassID) (THIS_ LPCLSID lpClassID);
|
|
|
|
// *** IMarshal Methods
|
|
STDMETHOD(GetUnmarshalClass)(THIS_ REFIID riid, LPVOID pv,
|
|
DWORD dwMemctx, LPVOID pvMemctx,
|
|
DWORD mshlflags, LPCLSID pClsid);
|
|
STDMETHOD(GetMarshalSizeMax)(THIS_ REFIID riid, LPVOID pv,
|
|
DWORD dwMemctx, LPVOID pvMemctx,
|
|
DWORD mshlflags, LPDWORD lpdwSize);
|
|
STDMETHOD(MarshalInterface)(THIS_ LPSTREAM pStm, REFIID riid,
|
|
LPVOID pv, DWORD dwMemctx, LPVOID pvMemctx,
|
|
DWORD mshlflags);
|
|
STDMETHOD(UnmarshalInterface)(THIS_ LPSTREAM pStm, REFIID riid,
|
|
LPVOID *ppv);
|
|
STDMETHOD(ReleaseMarshalData)(THIS_ LPSTREAM pStm);
|
|
STDMETHOD(DisconnectObject)(THIS_ DWORD dwReserved);
|
|
|
|
|
|
// *** IMoniker methods ***
|
|
STDMETHOD(BindToObject) (THIS_ LPBC pbc, LPMONIKER pmkToLeft,
|
|
REFIID riidResult, LPVOID FAR* ppvResult);
|
|
STDMETHOD(BindToStorage) (THIS_ LPBC pbc, LPMONIKER pmkToLeft,
|
|
REFIID riid, LPVOID FAR* ppvObj);
|
|
STDMETHOD(ComposeWith) (THIS_ LPMONIKER pmkRight, BOOL fOnlyIfNOtGeneric,
|
|
LPMONIKER FAR* ppmkPointer);
|
|
STDMETHOD(IsEqual) (THIS_ LPMONIKER pmkOtherMoniker);
|
|
STDMETHOD(Hash) (THIS_ LPDWORD pdwHash);
|
|
STDMETHOD(IsRunning) (THIS_ LPBC pbc, LPMONIKER pmkToLeft, LPMONIKER
|
|
pmkNewlyRunning);
|
|
STDMETHOD(GetTimeOfLastChange) (THIS_ LPBC pbc, LPMONIKER pmkToLeft,
|
|
FILETIME FAR* pfiletime);
|
|
STDMETHOD(Inverse) (THIS_ LPMONIKER FAR* ppmk);
|
|
STDMETHOD(CommonPrefixWith) (LPMONIKER pmkOther, LPMONIKER FAR*
|
|
ppmkPrefix);
|
|
STDMETHOD(RelativePathTo) (THIS_ LPMONIKER pmkOther, LPMONIKER FAR*
|
|
ppmkRelPath);
|
|
STDMETHOD(GetDisplayName) (THIS_ LPBC pbc, LPMONIKER pmkToLeft,
|
|
LPWSTR FAR* lplpszDisplayName);
|
|
STDMETHOD(ParseDisplayName) (THIS_ LPBC pbc, LPMONIKER pmkToLeft,
|
|
LPWSTR lpszDisplayName, ULONG FAR* pchEaten,
|
|
LPMONIKER FAR* ppmkOut);
|
|
STDMETHOD(IsSystemMoniker) (THIS_ LPDWORD pdwMksys);
|
|
|
|
shared_state:
|
|
|
|
LPUNKNOWN m_pUnk; // The punk of the wrapped object
|
|
SET_A5;
|
|
};
|