[2/5] wbemdisp: Register interfaces.
Hans Leidekker
hans at codeweavers.com
Fri Aug 16 07:19:21 CDT 2013
---
dlls/wbemdisp/Makefile.in | 2 +
dlls/wbemdisp/main.c | 21 ++
dlls/wbemdisp/wbemdisp.spec | 4 +-
dlls/wbemdisp/wbemdisp_classes.idl | 27 ++
include/Makefile.in | 1 +
include/wbemdisp.idl | 484 ++++++++++++++++++++++++++++++++++++
6 files changed, 537 insertions(+), 2 deletions(-)
create mode 100644 dlls/wbemdisp/wbemdisp_classes.idl
create mode 100644 include/wbemdisp.idl
diff --git a/dlls/wbemdisp/Makefile.in b/dlls/wbemdisp/Makefile.in
index 93812cb..917ebb4 100644
--- a/dlls/wbemdisp/Makefile.in
+++ b/dlls/wbemdisp/Makefile.in
@@ -3,4 +3,6 @@ MODULE = wbemdisp.dll
C_SRCS = \
main.c
+IDL_R_SRCS = wbemdisp_classes.idl
+
@MAKE_DLL_RULES@
diff --git a/dlls/wbemdisp/main.c b/dlls/wbemdisp/main.c
index 83bd1eb..2ebd986 100644
--- a/dlls/wbemdisp/main.c
+++ b/dlls/wbemdisp/main.c
@@ -20,6 +20,10 @@
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
+#include "objbase.h"
+#include "rpcproxy.h"
+
+static HINSTANCE instance;
BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved )
{
@@ -29,8 +33,25 @@ BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved )
case DLL_WINE_PREATTACH:
return FALSE; /* prefer native version */
case DLL_PROCESS_ATTACH:
+ instance = hinst;
DisableThreadLibraryCalls( hinst );
break;
}
return TRUE;
}
+
+/***********************************************************************
+ * DllRegisterServer (WBEMDISP.@)
+ */
+HRESULT WINAPI DllRegisterServer(void)
+{
+ return __wine_register_resources( instance );
+}
+
+/***********************************************************************
+ * DllUnregisterServer (WBEMDISP.@)
+ */
+HRESULT WINAPI DllUnregisterServer(void)
+{
+ return __wine_unregister_resources( instance );
+}
diff --git a/dlls/wbemdisp/wbemdisp.spec b/dlls/wbemdisp/wbemdisp.spec
index c5fc87a..6d0e061 100644
--- a/dlls/wbemdisp/wbemdisp.spec
+++ b/dlls/wbemdisp/wbemdisp.spec
@@ -1,4 +1,4 @@
@ stub DllCanUnloadNow
@ stub DllGetClassObject
-@ stub DllRegisterServer
-@ stub DllUnregisterServer
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
diff --git a/dlls/wbemdisp/wbemdisp_classes.idl b/dlls/wbemdisp/wbemdisp_classes.idl
new file mode 100644
index 0000000..660c950
--- /dev/null
+++ b/dlls/wbemdisp/wbemdisp_classes.idl
@@ -0,0 +1,27 @@
+/*
+ * COM Classes for wbemdisp
+ *
+ * Copyright 2013 Hans Leidekker for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+[
+ threading(apartment),
+ uuid(76a64158-cb41-11d1-8b02-00600806d9b6),
+ progid("WbemScripting.SWbemLocator.1"),
+ vi_progid("WbemScripting.SWbemLocator")
+]
+coclass SWbemLocator { interface ISWbemLocator; }
diff --git a/include/Makefile.in b/include/Makefile.in
index 7f26dca..15615c5 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -108,6 +108,7 @@ PUBLIC_IDL_H_SRCS = \
urlmon.idl \
vmr9.idl \
wbemcli.idl \
+ wbemdisp.idl \
wbemprov.idl \
wia_lh.idl \
wia_xp.idl \
diff --git a/include/wbemdisp.idl b/include/wbemdisp.idl
new file mode 100644
index 0000000..6803a63
--- /dev/null
+++ b/include/wbemdisp.idl
@@ -0,0 +1,484 @@
+/*
+ * Copyright 2013 Hans Leidekker for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "dispex.idl";
+
+interface ISWbemEventSource;
+interface ISWbemLocator;
+interface ISWbemMethodSet;
+interface ISWbemObject;
+interface ISWbemObjectPath;
+interface ISWbemObjectSet;
+interface ISWbemPrivilegeSet;
+interface ISWbemPropertySet;
+interface ISWbemQualifierSet;
+interface ISWbemSecurity;
+interface ISWbemServices;
+
+[
+ object,
+ local,
+ uuid(76a6415b-cb41-11d1-8b02-00600806d9b6),
+ dual,
+ hidden,
+ oleautomation,
+ pointer_default(unique)
+]
+interface ISWbemLocator : IDispatch
+{
+ [ id(1) ]
+ HRESULT ConnectServer(
+ [in] BSTR strServer,
+ [in] BSTR strNamespace,
+ [in] BSTR strUser,
+ [in] BSTR strPassword,
+ [in] BSTR strLocale,
+ [in] BSTR strAuthority,
+ [in] long iSecurityFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [out, retval] ISWbemServices **objWbemServices);
+
+ [ id(2), propget ]
+ HRESULT Security_(
+ ISWbemSecurity **objWbemSecurity);
+};
+
+[
+ object,
+ local,
+ uuid(76A6415A-CB41-11d1-8B02-00600806D9B6),
+ dual,
+ hidden,
+ oleautomation
+]
+interface ISWbemObject : IDispatch
+{
+ [ id(1) ]
+ HRESULT Put_(
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [out, retval] ISWbemObjectPath **objWbemObjectPath);
+
+ [ id(2) ]
+ HRESULT PutAsync_(
+ [in] IDispatch *objWbemSink,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [in] IDispatch *objWbemAsyncContext);
+
+ [ id (3) ]
+ HRESULT Delete_(
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet);
+
+ [ id (4) ]
+ HRESULT DeleteAsync_(
+ [in] IDispatch *objWbemSink,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [in] IDispatch *objWbemAsyncContext);
+
+ [ id(5) ]
+ HRESULT Instances_(
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [out, retval] ISWbemObjectSet **objWbemObjectSet);
+
+ [ id(6) ]
+ HRESULT InstancesAsync_(
+ [in] IDispatch *objWbemSink,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [in] IDispatch *objWbemAsyncContext);
+
+ [ id(7) ]
+ HRESULT Subclasses_(
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [out, retval] ISWbemObjectSet **objWbemObjectSet);
+
+ [ id(8) ]
+ HRESULT SubclassesAsync_(
+ [in] IDispatch *objWbemSink,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [in] IDispatch *objWbemAsyncContext);
+
+ [ id(9) ]
+ HRESULT Associators_(
+ [in] BSTR strAssocClass,
+ [in] BSTR strResultClass,
+ [in] BSTR strResultRole,
+ [in] BSTR strRole,
+ [in] VARIANT_BOOL bClassesOnly,
+ [in] VARIANT_BOOL bSchemaOnly,
+ [in] BSTR strRequiredAssocQualifier,
+ [in] BSTR strRequiredQualifier,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [out, retval] ISWbemObjectSet **objWbemObjectSet);
+
+ [ id(10) ]
+ HRESULT AssociatorsAsync_(
+ [in] IDispatch *objWbemSink,
+ [in] BSTR strAssocClass,
+ [in] BSTR strResultClass,
+ [in] BSTR strResultRole,
+ [in] BSTR strRole,
+ [in] VARIANT_BOOL bClassesOnly,
+ [in] VARIANT_BOOL bSchemaOnly,
+ [in] BSTR strRequiredAssocQualifier,
+ [in] BSTR strRequiredQualifier,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [in] IDispatch *objWbemAsyncContext);
+
+ [ id(11) ]
+ HRESULT References_(
+ [in] BSTR strResultClass,
+ [in] BSTR strRole,
+ [in] VARIANT_BOOL bClassesOnly,
+ [in] VARIANT_BOOL bSchemaOnly,
+ [in] BSTR strRequiredQualifier,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [out, retval] ISWbemObjectSet **objWbemObjectSet);
+
+ [ id(12) ]
+ HRESULT ReferencesAsync_(
+ [in] IDispatch *objWbemSink,
+ [in] BSTR strResultClass,
+ [in] BSTR strRole,
+ [in] VARIANT_BOOL bClassesOnly,
+ [in] VARIANT_BOOL bSchemaOnly,
+ [in] BSTR strRequiredQualifier,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [in] IDispatch *objWbemAsyncContext);
+
+ [ id(13) ]
+ HRESULT ExecMethod_(
+ [in] BSTR strMethodName,
+ [in] IDispatch *objWbemInParameters,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [out, retval] ISWbemObject **objWbemOutParameters);
+
+ [ id(14) ]
+ HRESULT ExecMethodAsync_(
+ [in] IDispatch *objWbemSink,
+ [in] BSTR strMethodName,
+ [in] IDispatch *objWbemInParameters,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [in] IDispatch *objWbemAsyncContext);
+
+ [ id(15) ]
+ HRESULT Clone_(
+ [out, retval] ISWbemObject **objWbemObject);
+
+ [ id(16) ]
+ HRESULT GetObjectText_(
+ [in] long iFlags,
+ [out, retval] BSTR *strObjectText);
+
+ [ id(17) ]
+ HRESULT SpawnDerivedClass_(
+ [in] long iFlags,
+ [out, retval] ISWbemObject **objWbemObject);
+
+ [ id(18) ]
+ HRESULT SpawnInstance_(
+ [in] long iFlags,
+ [out, retval] ISWbemObject **objWbemObject);
+
+ [ id(19) ]
+ HRESULT CompareTo_(
+ [in] IDispatch *objWbemObject,
+ [in] long iFlags,
+ [out, retval] VARIANT_BOOL *bResult);
+
+ [ id(20), propget ]
+ HRESULT Qualifiers_(
+ [out, retval] ISWbemQualifierSet **objWbemQualifierSet);
+
+ [ id(21), propget ]
+ HRESULT Properties_(
+ [out, retval] ISWbemPropertySet **objWbemPropertySet);
+
+ [ id(22), propget ]
+ HRESULT Methods_(
+ [out, retval] ISWbemMethodSet **objWbemMethodSet);
+
+ [ id(23), propget ]
+ HRESULT Derivation_(
+ [out, retval] VARIANT *strClassNameArray);
+
+ [ id(24), propget ]
+ HRESULT Path_(
+ [out, retval] ISWbemObjectPath **objWbemObjectPath);
+
+ [ id(25), propget ]
+ HRESULT Security_(
+ [out, retval] ISWbemSecurity **objWbemSecurity);
+};
+
+typedef
+[
+ v1_enum,
+ uuid(b54d66e8-2287-11d2-8b33-00600806d9b6)
+]
+enum WbemImpersonationLevelEnum
+{
+ wbemImpersonationLevelAnonymous = 1,
+ wbemImpersonationLevelIdentify = 2,
+ wbemImpersonationLevelImpersonate = 3,
+ wbemImpersonationLevelDelegate = 4
+} WbemImpersonationLevelEnum;
+
+typedef
+[
+ v1_enum,
+ uuid(b54d66e7-2287-11d2-8b33-00600806d9b6)
+]
+enum WbemAuthenticationLevelEnum
+{
+ wbemAuthenticationLevelDefault = 0,
+ wbemAuthenticationLevelNone = 1,
+ wbemAuthenticationLevelConnect = 2,
+ wbemAuthenticationLevelCall = 3,
+ wbemAuthenticationLevelPkt = 4,
+ wbemAuthenticationLevelPktIntegrity = 5,
+ wbemAuthenticationLevelPktPrivacy = 6
+} WbemAuthenticationLevelEnum;
+
+[
+ object,
+ local,
+ uuid(b54d66e6-2287-11d2-8b33-00600806d9b6),
+ dual,
+ hidden,
+ oleautomation,
+ nonextensible
+]
+interface ISWbemSecurity : IDispatch
+{
+ [ id(1), propget ]
+ HRESULT ImpersonationLevel(
+ [out, retval] WbemImpersonationLevelEnum *iImpersonationLevel);
+
+ [ id(1), propput ]
+ HRESULT ImpersonationLevel(
+ [in] WbemImpersonationLevelEnum iImpersonationLevel);
+
+ [ id(2), propget ]
+ HRESULT AuthenticationLevel(
+ [out, retval] WbemAuthenticationLevelEnum *iAuthenticationLevel);
+
+ [ id(2), propput ]
+ HRESULT AuthenticationLevel(
+ [in] WbemAuthenticationLevelEnum iAuthenticationLevel);
+
+ [ id(3), propget ]
+ HRESULT Privileges(
+ [out, retval] ISWbemPrivilegeSet **objWbemPrivilegeSet);
+};
+
+[
+ object,
+ local,
+ uuid(76a6415c-cb41-11d1-8b02-00600806d9b6),
+ dual,
+ hidden,
+ oleautomation,
+ pointer_default(unique)
+]
+interface ISWbemServices : IDispatch
+{
+ [ id(1) ]
+ HRESULT Get(
+ [in] BSTR strObjectPath,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [out, retval] ISWbemObject **objWbemObject);
+
+ [ id(2) ]
+ HRESULT GetAsync(
+ [in] IDispatch *objWbemSink,
+ [in] BSTR strObjectPath,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [in] IDispatch *objWbemAsyncContext);
+
+ [ id(3) ]
+ HRESULT Delete(
+ [in] BSTR strObjectPath,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet);
+
+ [ id(4) ]
+ HRESULT DeleteAsync(
+ [in] IDispatch *objWbemSink,
+ [in] BSTR strObjectPath,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [in] IDispatch *objWbemAsyncContext);
+
+ [ id(5) ]
+ HRESULT InstancesOf(
+ [in] BSTR strClass,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [out, retval] ISWbemObjectSet **objWbemObjectSet);
+
+ [ id(6) ]
+ HRESULT InstancesOfAsync(
+ [in] IDispatch *objWbemSink,
+ [in] BSTR strClass,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [in] IDispatch *objWbemAsyncContext);
+
+ [ id(7) ]
+ HRESULT SubclassesOf(
+ [in] BSTR strSuperclass,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [out, retval] ISWbemObjectSet **objWbemObjectSet);
+
+ [ id(8) ]
+ HRESULT SubclassesOfAsync(
+ [in] IDispatch *objWbemSink,
+ [in] BSTR strSuperclass,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [in] IDispatch *objWbemAsyncContext);
+
+ [ id(9) ]
+ HRESULT ExecQuery(
+ [in] BSTR strQuery,
+ [in] BSTR strQueryLanguage,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [out, retval] ISWbemObjectSet **objWbemObjectSet);
+
+ [ id(10) ]
+ HRESULT ExecQueryAsync(
+ [in] IDispatch *objWbemSink,
+ [in] BSTR strQuery,
+ [in] BSTR strQueryLanguage,
+ [in] long lFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [in] IDispatch *objWbemAsyncContext);
+
+ [ id(11) ]
+ HRESULT AssociatorsOf(
+ [in] BSTR strObjectPath,
+ [in] BSTR strAssocClass,
+ [in] BSTR strResultClass,
+ [in] BSTR strResultRole,
+ [in] BSTR strRole,
+ [in] VARIANT_BOOL bClassesOnly,
+ [in] VARIANT_BOOL bSchemaOnly,
+ [in] BSTR strRequiredAssocQualifier,
+ [in] BSTR strRequiredQualifier,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [out, retval] ISWbemObjectSet **objWbemObjectSet);
+
+ [ id(12) ]
+ HRESULT AssociatorsOfAsync(
+ [in] IDispatch *objWbemSink,
+ [in] BSTR strObjectPath,
+ [in] BSTR strAssocClass,
+ [in] BSTR strResultClass,
+ [in] BSTR strResultRole,
+ [in] BSTR strRole,
+ [in] VARIANT_BOOL bClassesOnly,
+ [in] VARIANT_BOOL bSchemaOnly,
+ [in] BSTR strRequiredAssocQualifier,
+ [in] BSTR strRequiredQualifier,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [in] IDispatch *objWbemAsyncContext);
+
+ [ id(13) ]
+ HRESULT ReferencesTo(
+ [in] BSTR strObjectPath,
+ [in] BSTR strResultClass,
+ [in] BSTR strRole,
+ [in] VARIANT_BOOL bClassesOnly,
+ [in] VARIANT_BOOL bSchemaOnly,
+ [in] BSTR strRequiredQualifier,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [out, retval] ISWbemObjectSet **objWbemObjectSet);
+
+ [ id(14) ]
+ HRESULT ReferencesToAsync(
+ [in] IDispatch *objWbemSink,
+ [in] BSTR strObjectPath,
+ [in] BSTR strResultClass,
+ [in] BSTR strRole,
+ [in] VARIANT_BOOL bClassesOnly,
+ [in] VARIANT_BOOL bSchemaOnly,
+ [in] BSTR strRequiredQualifier,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [in] IDispatch *objWbemAsyncContext);
+
+ [ id(15) ]
+ HRESULT ExecNotificationQuery(
+ [in] BSTR strQuery,
+ [in] BSTR strQueryLanguage,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [out, retval] ISWbemEventSource **objWbemEventSource);
+
+ [ id(16) ]
+ HRESULT ExecNotificationQueryAsync(
+ [in] IDispatch *objWbemSink,
+ [in] BSTR strQuery,
+ [in] BSTR strQueryLanguage,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [in] IDispatch *objWbemAsyncContext);
+
+ [ id(17) ]
+ HRESULT ExecMethod(
+ [in] BSTR strObjectPath,
+ [in] BSTR strMethodName,
+ [in] IDispatch *objWbemInParameters,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [out, retval] ISWbemObject **objWbemOutParameters);
+
+ [ id(18) ]
+ HRESULT ExecMethodAsync(
+ [in] IDispatch *objWbemSink,
+ [in] BSTR strObjectPath,
+ [in] BSTR strMethodName,
+ [in] IDispatch *objWbemInParameters,
+ [in] long iFlags,
+ [in] IDispatch *objWbemNamedValueSet,
+ [in] IDispatch *objWbemAsyncContext);
+
+ [ id(19), propget ]
+ HRESULT Security_(
+ [out, retval] ISWbemSecurity **objWbemSecurity);
+};
--
1.7.10.4
More information about the wine-patches
mailing list