#ifndef WINE_DSHOW_DEVMON_H #define WINE_DSHOW_DEVMON_H /* implements CLSID_CDeviceMoniker. - At least, the following interfaces should be implemented: IUnknown + IPersist - IPersistStream - IMoniker */ #include "iunk.h" typedef struct DMON_IMonikerImpl { ICOM_VFIELD(IMoniker); } DMON_IMonikerImpl; typedef struct CDeviceMoniker { QUARTZ_IUnkImpl unk; DMON_IMonikerImpl moniker; /* IMoniker fields */ HKEY m_hkRoot; WCHAR* m_pwszPath; } CDeviceMoniker; #define CDeviceMoniker_THIS(iface,member) CDeviceMoniker* This = (CDeviceMoniker*)(((char*)iface)-offsetof(CDeviceMoniker,member)) HRESULT QUARTZ_CreateDeviceMoniker( HKEY hkRoot, LPCWSTR lpKeyPath, IMoniker** ppMoniker ); /* implements IPropertyBag for accessing registry. - At least, the following interfaces should be implemented: IUnknown + IPropertyBag */ #include "iunk.h" typedef struct DMON_IPropertyBagImpl { ICOM_VFIELD(IPropertyBag); } DMON_IPropertyBagImpl; typedef struct CRegPropertyBag { QUARTZ_IUnkImpl unk; DMON_IPropertyBagImpl propbag; /* IPropertyBag fields */ HKEY m_hKey; } CRegPropertyBag; #define CRegPropertyBag_THIS(iface,member) CRegPropertyBag* This = (CRegPropertyBag*)(((char*)iface)-offsetof(CRegPropertyBag,member)) HRESULT QUARTZ_CreateRegPropertyBag( HKEY hkRoot, LPCWSTR lpKeyPath, IPropertyBag** ppPropBag ); #endif /* WINE_DSHOW_DEVMON_H */