When including 'wine/port.h', include it first.
[wine] / dlls / quartz / devmon.h
1 #ifndef WINE_DSHOW_DEVMON_H
2 #define WINE_DSHOW_DEVMON_H
3
4 /*
5                 implements CLSID_CDeviceMoniker.
6
7         - At least, the following interfaces should be implemented:
8
9         IUnknown
10                 + IPersist - IPersistStream - IMoniker
11  */
12
13 #include "iunk.h"
14
15 typedef struct DMON_IMonikerImpl
16 {
17         ICOM_VFIELD(IMoniker);
18 } DMON_IMonikerImpl;
19
20 typedef struct CDeviceMoniker
21 {
22         QUARTZ_IUnkImpl unk;
23         DMON_IMonikerImpl       moniker;
24         /* IMoniker fields */
25         HKEY    m_hkRoot;
26         WCHAR*  m_pwszPath;
27 } CDeviceMoniker;
28
29 #define CDeviceMoniker_THIS(iface,member)       CDeviceMoniker* This = (CDeviceMoniker*)(((char*)iface)-offsetof(CDeviceMoniker,member))
30
31 HRESULT QUARTZ_CreateDeviceMoniker(
32         HKEY hkRoot, LPCWSTR lpKeyPath,
33         IMoniker** ppMoniker );
34
35
36 /*
37                 implements IPropertyBag for accessing registry.
38
39         - At least, the following interfaces should be implemented:
40
41         IUnknown
42                 + IPropertyBag
43  */
44
45 #include "iunk.h"
46
47 typedef struct DMON_IPropertyBagImpl
48 {
49         ICOM_VFIELD(IPropertyBag);
50 } DMON_IPropertyBagImpl;
51
52 typedef struct CRegPropertyBag
53 {
54         QUARTZ_IUnkImpl unk;
55         DMON_IPropertyBagImpl   propbag;
56         /* IPropertyBag fields */
57         HKEY    m_hKey;
58 } CRegPropertyBag;
59
60 #define CRegPropertyBag_THIS(iface,member)      CRegPropertyBag*        This = (CRegPropertyBag*)(((char*)iface)-offsetof(CRegPropertyBag,member))
61
62 HRESULT QUARTZ_CreateRegPropertyBag(
63         HKEY hkRoot, LPCWSTR lpKeyPath,
64         IPropertyBag** ppPropBag );
65
66 #endif  /* WINE_DSHOW_DEVMON_H */