1 #ifndef WINE_DSHOW_DEVENUM_H
2 #define WINE_DSHOW_DEVENUM_H
5 * implements CLSID_SystemDeviceEnum.
7 * - At least, the following interfaces should be implemented:
15 typedef struct SDE_ICreateDevEnumImpl
17 ICOM_VFIELD(ICreateDevEnum);
18 } SDE_ICreateDevEnumImpl;
20 typedef struct CSysDevEnum
23 SDE_ICreateDevEnumImpl createdevenum;
26 #define CSysDevEnum_THIS(iface,member) CSysDevEnum* This = ((CSysDevEnum*)(((char*)iface)-offsetof(CSysDevEnum,member)))
28 HRESULT QUARTZ_CreateSystemDeviceEnum(IUnknown* punkOuter,void** ppobj);
30 HRESULT CSysDevEnum_InitICreateDevEnum( CSysDevEnum* psde );
31 void CSysDevEnum_UninitICreateDevEnum( CSysDevEnum* psde );
36 * implements CLSID_CDeviceMoniker.
38 * - At least, the following interfaces should be implemented:
41 * + IPersist - IPersistStream - IMoniker
44 typedef struct DMON_IMonikerImpl
46 ICOM_VFIELD(IMoniker);
49 typedef struct CDeviceMoniker
52 DMON_IMonikerImpl moniker;
58 #define CDeviceMoniker_THIS(iface,member) CDeviceMoniker* This = (CDeviceMoniker*)(((char*)iface)-offsetof(CDeviceMoniker,member))
60 HRESULT QUARTZ_CreateDeviceMoniker(
61 HKEY hkRoot, LPCWSTR lpKeyPath,
62 IMoniker** ppMoniker );
66 * implements IPropertyBag for accessing registry.
68 * - At least, the following interfaces should be implemented:
74 typedef struct DMON_IPropertyBagImpl
76 ICOM_VFIELD(IPropertyBag);
77 } DMON_IPropertyBagImpl;
79 typedef struct CRegPropertyBag
82 DMON_IPropertyBagImpl propbag;
83 /* IPropertyBag fields */
87 #define CRegPropertyBag_THIS(iface,member) CRegPropertyBag* This = (CRegPropertyBag*)(((char*)iface)-offsetof(CRegPropertyBag,member))
89 HRESULT QUARTZ_CreateRegPropertyBag(
90 HKEY hkRoot, LPCWSTR lpKeyPath,
91 IPropertyBag** ppPropBag );
93 /***************************************************************************
95 * related functions (internal).
99 HRESULT QUARTZ_GetFilterRegPath(
100 WCHAR** ppwszPath, /* [OUT] path from HKEY_CLASSES_ROOT */
101 const CLSID* pguidFilterCategory, /* [IN] Category */
102 const CLSID* pclsid, /* [IN] CLSID of this filter */
103 LPCWSTR lpInstance ); /* [IN] instance */
105 HRESULT QUARTZ_RegisterFilterToMoniker(
106 IMoniker* pMoniker, /* [IN] Moniker */
107 const CLSID* pclsid, /* [IN] CLSID of this filter */
108 LPCWSTR lpFriendlyName, /* [IN] friendly name */
109 const BYTE* pbFilterData, /* [IN] filter data */
110 DWORD cbFilterData ); /* [IN] size of the filter data */
112 HRESULT QUARTZ_RegDeleteKey( HKEY hkRoot, LPCWSTR lpKeyPath );
114 HRESULT QUARTZ_GetCLSIDFromMoniker(
115 IMoniker* pMoniker, /* [IN] Moniker */
116 CLSID* pclsid ); /* [OUT] */
117 HRESULT QUARTZ_GetMeritFromMoniker(
118 IMoniker* pMoniker, /* [IN] Moniker */
119 DWORD* pdwMerit ); /* [OUT] */
120 HRESULT QUARTZ_GetFilterDataFromMoniker(
121 IMoniker* pMoniker, /* [IN] Moniker */
122 BYTE** ppbFilterData, /* [OUT] */
123 DWORD* pcbFilterData ); /* [OUT] */
126 #endif /* WINE_DSHOW_DEVENUM_H */