Various cosmetic changes.
[wine] / dlls / quartz / devenum.h
1 #ifndef WINE_DSHOW_DEVENUM_H
2 #define WINE_DSHOW_DEVENUM_H
3
4 /*
5  *              implements CLSID_SystemDeviceEnum.
6  *
7  *      - At least, the following interfaces should be implemented:
8  *
9  *      IUnknown
10  *              + ICreateDevEnum
11  */
12
13 #include "iunk.h"
14
15 typedef struct SDE_ICreateDevEnumImpl
16 {
17         ICOM_VFIELD(ICreateDevEnum);
18 } SDE_ICreateDevEnumImpl;
19
20 typedef struct CSysDevEnum
21 {
22         QUARTZ_IUnkImpl unk;
23         SDE_ICreateDevEnumImpl  createdevenum;
24 } CSysDevEnum;
25
26 #define CSysDevEnum_THIS(iface,member)          CSysDevEnum*    This = ((CSysDevEnum*)(((char*)iface)-offsetof(CSysDevEnum,member)))
27
28 HRESULT QUARTZ_CreateSystemDeviceEnum(IUnknown* punkOuter,void** ppobj);
29
30 HRESULT CSysDevEnum_InitICreateDevEnum( CSysDevEnum* psde );
31 void CSysDevEnum_UninitICreateDevEnum( CSysDevEnum* psde );
32
33
34
35 /*
36  *              implements CLSID_CDeviceMoniker.
37  *
38  *      - At least, the following interfaces should be implemented:
39  *
40  *      IUnknown
41  *              + IPersist - IPersistStream - IMoniker
42  */
43
44 typedef struct DMON_IMonikerImpl
45 {
46         ICOM_VFIELD(IMoniker);
47 } DMON_IMonikerImpl;
48
49 typedef struct CDeviceMoniker
50 {
51         QUARTZ_IUnkImpl unk;
52         DMON_IMonikerImpl       moniker;
53         /* IMoniker fields */
54         HKEY    m_hkRoot;
55         WCHAR*  m_pwszPath;
56 } CDeviceMoniker;
57
58 #define CDeviceMoniker_THIS(iface,member)       CDeviceMoniker* This = (CDeviceMoniker*)(((char*)iface)-offsetof(CDeviceMoniker,member))
59
60 HRESULT QUARTZ_CreateDeviceMoniker(
61         HKEY hkRoot, LPCWSTR lpKeyPath,
62         IMoniker** ppMoniker );
63
64
65 /*
66  *              implements IPropertyBag for accessing registry.
67  *
68  *      - At least, the following interfaces should be implemented:
69  *
70  *      IUnknown
71  *              + IPropertyBag
72  */
73
74 typedef struct DMON_IPropertyBagImpl
75 {
76         ICOM_VFIELD(IPropertyBag);
77 } DMON_IPropertyBagImpl;
78
79 typedef struct CRegPropertyBag
80 {
81         QUARTZ_IUnkImpl unk;
82         DMON_IPropertyBagImpl   propbag;
83         /* IPropertyBag fields */
84         HKEY    m_hKey;
85 } CRegPropertyBag;
86
87 #define CRegPropertyBag_THIS(iface,member)      CRegPropertyBag*        This = (CRegPropertyBag*)(((char*)iface)-offsetof(CRegPropertyBag,member))
88
89 HRESULT QUARTZ_CreateRegPropertyBag(
90         HKEY hkRoot, LPCWSTR lpKeyPath,
91         IPropertyBag** ppPropBag );
92
93 /***************************************************************************
94  *
95  *      related functions (internal).
96  *
97  */
98
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 */
104
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 */
111
112 HRESULT QUARTZ_RegDeleteKey( HKEY hkRoot, LPCWSTR lpKeyPath );
113
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] */
124
125
126 #endif  /* WINE_DSHOW_DEVENUM_H */