/****************************************************************************** * * (C) COPYRIGHT MICROSOFT CORP., 1999 * * TITLE: wiamonk.h * * VERSION: 1.0 * * DATE: 10 Nov, 1999 * * DESCRIPTION: * This file describes the class used by WIA to imlement an instance moniker. * ******************************************************************************/ class CWiaInstMonk : public IMoniker, public IROTData { public: // // Constructor, Destructor, Initialize // CWiaInstMonk(); ~CWiaInstMonk(); HRESULT _stdcall Initialize(LPOLESTR strName); // // IUnknown // HRESULT _stdcall QueryInterface(const IID& iid, void** ppv); ULONG _stdcall AddRef(); ULONG _stdcall Release(); // // IROTData // HRESULT _stdcall GetComparisonData( BYTE *pbData, ULONG cbMax, ULONG *pcbData); // // IMoniker // HRESULT _stdcall BindToObject( IBindCtx *pbc, IMoniker *pmkToLeft, REFIID riidResult, void **ppvResult); HRESULT _stdcall BindToStorage( IBindCtx *pbc, IMoniker *pmkToLeft, REFIID riid, void **ppvObj); HRESULT _stdcall Reduce( IBindCtx *pbc, DWORD dwReduceHowFar, IMoniker **ppmkToLeft, IMoniker **ppmkReduced); HRESULT _stdcall ComposeWith( IMoniker *pmkRight, BOOL fOnlyIfNotGeneric, IMoniker **ppmkComposite); HRESULT _stdcall Enum( BOOL fForward, IEnumMoniker **ppenumMoniker); HRESULT _stdcall IsEqual( IMoniker *pmkOtherMoniker); HRESULT _stdcall Hash( DWORD *pdwHash); HRESULT _stdcall IsRunning( IBindCtx *pbc, IMoniker *pmkToLeft, IMoniker *pmkNewlyRunning); HRESULT _stdcall GetTimeOfLastChange( IBindCtx *pbc, IMoniker *pmkToLeft, FILETIME *pFileTime); HRESULT _stdcall Inverse( IMoniker **ppmk); HRESULT _stdcall CommonPrefixWith( IMoniker *pmkOther, IMoniker **ppmkPrefix); HRESULT _stdcall RelativePathTo( IMoniker *pmkOther, IMoniker **ppmkRelPath); HRESULT _stdcall GetDisplayName( IBindCtx *pbc, IMoniker *pmkToLeft, LPOLESTR *ppszDisplayName); HRESULT _stdcall ParseDisplayName( IBindCtx *pbc, IMoniker *pmkToLeft, LPOLESTR pszDisplayName, ULONG *pchEaten, IMoniker **ppmkOut); HRESULT _stdcall IsSystemMoniker( DWORD *pdwMksys); // // IPersistStream // HRESULT _stdcall IsDirty(); HRESULT _stdcall Load(IStream *pStm); HRESULT _stdcall Save(IStream *pStm, BOOL fClearDirty); HRESULT _stdcall GetSizeMax(ULARGE_INTEGER *pcbSize); // // IPersist // HRESULT _stdcall GetClassID(LPCLSID pClassID); private: LONG m_cRef; BSTR m_bstrName; IUnknown *m_pIUnknownInner; };