From b1bb28b742a05dce6edd381a68a15e847f0cae90 Mon Sep 17 00:00:00 2001 From: Vincent Povirk Date: Tue, 21 Sep 2010 15:16:56 -0500 Subject: [PATCH 01/22] include: Add declaration for ICLRMetaHost. --- .gitignore | 1 + include/Makefile.in | 1 + include/metahost.idl | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+), 0 deletions(-) create mode 100644 include/metahost.idl diff --git a/.gitignore b/.gitignore index d009da6..3b4c63c 100644 --- a/.gitignore +++ b/.gitignore @@ -175,6 +175,7 @@ include/imnact.h include/imnxport.h include/indexsrv.h include/mediaobj.h +include/metahost.h include/mimeinfo.h include/mimeole.h include/mlang.h diff --git a/include/Makefile.in b/include/Makefile.in index fc6df0f..0c41dd4 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -41,6 +41,7 @@ PUBLIC_IDL_H_SRCS = \ imnxport.idl \ indexsrv.idl \ mediaobj.idl \ + metahost.idl \ mimeinfo.idl \ mimeole.idl \ mlang.idl \ diff --git a/include/metahost.idl b/include/metahost.idl new file mode 100644 index 0000000..d0d3355 --- /dev/null +++ b/include/metahost.idl @@ -0,0 +1,67 @@ +/* + * Copyright 2010 Vincent Povirk 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 "wtypes.idl"; +import "propidl.idl"; + +interface ICLRRuntimeInfo; + +typedef HRESULT (__stdcall *CallbackThreadSetFnPtr)(); +typedef HRESULT (__stdcall *CallbackThreadUnsetFnPtr)(); + +typedef void (__stdcall *RuntimeLoadedCallbackFnPtr)( + ICLRRuntimeInfo *pRuntimeInfo, + CallbackThreadSetFnPtr pfnCallbackThreadSet, + CallbackThreadUnsetFnPtr pfnCallbackThreadUnset); + +cpp_quote("DEFINE_GUID(CLSID_CLRMetaHost, 0x9280188d,0x0e8e,0x4867,0xb3,0x0c,0x7f,0xa8,0x38,0x84,0xe8,0xde);") + +[ + object, + local, + uuid(d332db9e-b9b3-4125-8207-a14884f53216) +] +interface ICLRMetaHost : IUnknown +{ + HRESULT GetRuntime( + [in] LPCWSTR pwzVersion, + [in] REFIID iid, + [out, iid_is(iid), retval] LPVOID *ppRuntime); + + HRESULT GetVersionFromFile( + [in] LPCWSTR pwzFilePath, + [out, size_is(*pcchBuffer)] LPWSTR pwzBuffer, + [in, out] DWORD *pcchBuffer); + + HRESULT EnumerateInstalledRuntimes( + [out, retval] IEnumUnknown **ppEnumerator); + + HRESULT EnumerateLoadedRuntimes( + [in] HANDLE hndProcess, + [out, retval] IEnumUnknown **ppEnumerator); + + HRESULT RequestRuntimeLoadedNotification( + [in] RuntimeLoadedCallbackFnPtr pCallbackFunction); + + HRESULT QueryLegacyV2RuntimeBinding( + [in] REFIID riid, + [out, iid_is(riid), retval] LPVOID *ppUnk); + + HRESULT ExitProcess( + [in] INT32 iExitCode); +}; -- 1.7.0.4