dmime: Avoid leaking tracks in IDirectMusicSegment_Release.
[wine.git] / include / wmium.h
blob887c2b4ccf54c559d9c8a1c499608a00428154dd
1 /*
2 * Copyright (C) 2016 Austin English
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef _WMIUM_
20 #define _WMIUM_
22 #ifdef _WMI_SOURCE_
23 #define WMIAPI __stdcall
24 #else
25 #define WMIAPI DECLSPEC_HIDDEN __stdcall
26 #endif
28 #include <guiddef.h>
29 #include <basetsd.h>
30 #include <wmistr.h>
32 typedef PVOID WMIHANDLE, *PWMIHANDLE, MOFHANDLE, *PMOFHANDLE;
34 #define MOFCI_RESERVED0 0x00000001
35 #define MOFCI_RESERVED1 0x00000002
36 #define MOFCI_RESERVED2 0x00000004
38 typedef struct
40 char *ImagePath;
41 char *ResourceName;
42 ULONG ResourceSize;
43 UCHAR *ResourceBuffer;
44 } MOFRESOURCEINFOA, *PMOFRESOURCEINFOA;
46 typedef struct
48 WCHAR *ImagePath;
49 WCHAR *ResourceName;
50 ULONG ResourceSize;
51 UCHAR *ResourceBuffer;
52 } MOFRESOURCEINFOW, *PMOFRESOURCEINFOW;
54 DECL_WINELIB_TYPE_AW(MOFRESOURCEINFO)
55 DECL_WINELIB_TYPE_AW(PMOFRESOURCEINFO)
57 #ifdef __cplusplus
58 extern "C" {
59 #endif
61 #define NOTIFICATION_TRACE_FLAG 0x00010000
62 #define NOTIFICATION_CALLBACK_DIRECT 0x00000004
63 #define NOTIFICATION_CHECK_ACCESS 0x00000008
65 typedef void (WINAPI *NOTIFICATIONCALLBACK)(WNODE_HEADER *, UINT_PTR);
67 typedef struct _WMIGUIDINFORMATION
69 ULONG Size;
70 BOOLEAN IsExpensive;
71 BOOLEAN IsEventOnly;
72 } WMIGUIDINFORMATION, *PWMIGUIDINFORMATION;
74 DEFINE_GUID(GUID_REGISTRATION_CHANGE_NOTIFICATION, 0xb48d49a1, 0xe777, 0x11d0, 0xa5, 0xc, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0x10);
75 DEFINE_GUID(GUID_MOF_RESOURCE_ADDED_NOTIFICATION, 0xb48d49a2, 0xe777, 0x11d0, 0xa5, 0xc, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0x10);
76 DEFINE_GUID(GUID_MOF_RESOURCE_REMOVED_NOTIFICATION, 0xb48d49a3, 0xe777, 0x11d0, 0xa5, 0xc, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0x10);
78 ULONG WMIAPI WmiCloseBlock(WMIHANDLE);
79 ULONG WMIAPI WmiDevInstToInstanceNameA(char *, ULONG, char *, ULONG);
80 ULONG WMIAPI WmiDevInstToInstanceNameW(WCHAR *, ULONG, WCHAR *, ULONG);
81 #define WmiDevInstToInstanceName WINELIB_NAME_AW(WmiDevInstToInstanceName)
82 ULONG WMIAPI WmiEnumerateGuids(GUID *, ULONG *);
83 ULONG WMIAPI WmiExecuteMethodA(WMIHANDLE, const char *, ULONG, ULONG, void *, ULONG *, void *);
84 ULONG WMIAPI WmiExecuteMethodW(WMIHANDLE, const WCHAR *, ULONG, ULONG, void *, ULONG *, void *);
85 #define WmiExecuteMethod WINELIB_NAME_AW(WmiExecuteMethod)
86 ULONG WMIAPI WmiFileHandleToInstanceNameA(WMIHANDLE, HANDLE, ULONG *, char *);
87 ULONG WMIAPI WmiFileHandleToInstanceNameW(WMIHANDLE, HANDLE, ULONG *, WCHAR *);
88 #define WmiFileHandleToInstanceName WINELIB_NAME_AW(WmiFileHandleToInstanceName)
89 void WMIAPI WmiFreeBuffer(void *);
90 #define WmiInsertTimestamp(WnodeHeader) GetSystemTimeAsFileTime((FILETIME *)&((WNODE_HEADER *)WnodeHeader)->TimeStamp)
91 ULONG WMIAPI WmiMofEnumerateResourcesA(MOFHANDLE, ULONG *, MOFRESOURCEINFOA **);
92 ULONG WMIAPI WmiMofEnumerateResourcesW(MOFHANDLE, ULONG *, MOFRESOURCEINFOW **);
93 #define WmiMofEnumerateResources WINELIB_NAME_AW(WmiMofEnumerateResources)
94 ULONG WMIAPI WmiNotificationRegistrationA(GUID *, BOOLEAN, void *, ULONG_PTR, ULONG);
95 ULONG WMIAPI WmiNotificationRegistrationW(GUID *, BOOLEAN, void *, ULONG_PTR, ULONG);
96 #define WmiNotificationRegistration WINELIB_NAME_AW(WmiNotificationRegistration)
97 ULONG WMIAPI WmiOpenBlock(GUID *, ULONG, WMIHANDLE *);
98 ULONG WMIAPI WmiQueryAllDataA(WMIHANDLE, ULONG *, void *);
99 ULONG WMIAPI WmiQueryAllDataW(WMIHANDLE, ULONG *, void *);
100 #define WmiQueryAllData WINELIB_NAME_AW(WmiQueryAllData)
101 ULONG WMIAPI WmiQueryGuidInformation(WMIHANDLE, WMIGUIDINFORMATION *);
102 ULONG WMIAPI WmiQuerySingleInstanceA(WMIHANDLE, const char *, ULONG *, void *);
103 ULONG WMIAPI WmiQuerySingleInstanceW(WMIHANDLE, const WCHAR *, ULONG *, void *);
104 #define WmiQuerySingleInstance WINELIB_NAME_AW(WmiQuerySingleInstance)
105 ULONG WMIAPI WmiSetSingleInstanceA(WMIHANDLE, const char *, ULONG, ULONG, void *);
106 ULONG WMIAPI WmiSetSingleInstanceW(WMIHANDLE, const WCHAR *, ULONG, ULONG, void *);
107 #define WmiSetSingleInstance WINELIB_NAME_AW(WmiSetSingleInstance)
108 ULONG WMIAPI WmiSetSingleItemA(WMIHANDLE, const char *, ULONG, ULONG, ULONG, void *);
109 ULONG WMIAPI WmiSetSingleItemW(WMIHANDLE, const WCHAR *, ULONG, ULONG, ULONG, void *);
110 #define WmiSetSingleItem WINELIB_NAME_AW(WmiSetSingleItem)
112 #ifdef __cplusplus
114 #endif
116 #endif /* _WMIUM_ */