sync mscoree headers with wine
authorChristoph von Wittich <christoph_vw@reactos.org>
Sun, 7 Sep 2008 11:10:58 +0000 (11:10 +0000)
committerChristoph von Wittich <christoph_vw@reactos.org>
Sun, 7 Sep 2008 11:10:58 +0000 (11:10 +0000)
svn path=/trunk/; revision=36024

reactos/include/psdk/corerror.h [new file with mode: 0644]
reactos/include/psdk/corhdr.h [new file with mode: 0644]
reactos/include/psdk/mscoree.idl

diff --git a/reactos/include/psdk/corerror.h b/reactos/include/psdk/corerror.h
new file mode 100644 (file)
index 0000000..8a04699
--- /dev/null
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2008 James Hawkins
+ *
+ * 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
+ */
+
+#ifndef __WINE_CORERROR_H
+#define __WINE_CORERROR_H
+
+#include <winerror.h>
+
+#ifndef FACILITY_URT
+#define FACILITY_URT 0x13
+#endif
+
+#ifndef EMAKEHR
+#define SMAKEHR(val) MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_URT, val)
+#define EMAKEHR(val) MAKE_HRESULT(SEVERITY_ERROR, FACILITY_URT, val)
+#endif
+
+#define COR_E_ARGUMENT              E_INVALIDARG
+#define COR_E_INVALIDCAST           E_NOINTERFACE
+#define COR_E_NULLREFERENCE         E_POINTER
+#define COR_E_OUTOFMEMORY           E_OUTOFMEMORY
+#define COR_E_UNAUTHORIZEDACCESS    E_ACCESSDENIED
+
+#define COR_E_ARITHMETIC            HRESULT_FROM_WIN32(ERROR_ARITHMETIC_OVERFLOW)
+#define COR_E_STACKOVERFLOW         HRESULT_FROM_WIN32(ERROR_STACK_OVERFLOW)
+#define COR_E_ENDOFSTREAM           HRESULT_FROM_WIN32(ERROR_HANDLE_EOF)
+#define COR_E_FILENOTFOUND          HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
+#define COR_E_BAD_PATHNAME          HRESULT_FROM_WIN32(ERROR_BAD_PATHNAME)
+#define COR_E_DIRECTORYNOTFOUND     HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND)
+#define COR_E_PATHTOOLONG           HRESULT_FROM_WIN32(ERROR_FILENAME_EXCED_RANGE)
+
+#define COR_E_AMBIGUOUSMATCH    _HRESULT_TYPEDEF_(0x8000211DL)
+#define COR_E_TARGETPARAMCOUNT  _HRESULT_TYPEDEF_(0x8002000EL)
+#define COR_E_DIVIDEBYZERO      _HRESULT_TYPEDEF_(0x80020012L)
+#define COR_E_BADIMAGEFORMAT    _HRESULT_TYPEDEF_(0x8007000BL)
+
+#define COR_E_ASSEMBLYEXPECTED          EMAKEHR(0x1018L)
+#define COR_E_TYPEUNLOADED              EMAKEHR(0x1013L)
+#define COR_E_EXCEPTION                 EMAKEHR(0x1500L)
+#define COR_E_SYSTEM                    EMAKEHR(0x1501L)
+#define COR_E_ARGUMENTOUTOFRANGE        EMAKEHR(0x1502L)
+#define COR_E_ARRAYTYPEMISMATCH         EMAKEHR(0x1503L)
+#define COR_E_CONTEXTMARSHAL            EMAKEHR(0x1504L)
+#define COR_E_TIMEOUT                   EMAKEHR(0x1505L)
+#define COR_E_EXECUTIONENGINE           EMAKEHR(0x1506L)
+#define COR_E_FIELDACCESS               EMAKEHR(0x1507L)
+#define COR_E_INDEXOUTOFRANGE           EMAKEHR(0x1508L)
+#define COR_E_INVALIDOPERATION          EMAKEHR(0x1509L)
+#define COR_E_SECURITY                  EMAKEHR(0x150AL)
+#define COR_E_REMOTING                  EMAKEHR(0x150BL)
+#define COR_E_SERIALIZATION             EMAKEHR(0x150CL)
+#define COR_E_VERIFICATION              EMAKEHR(0x150DL)
+#define COR_E_SERVER                    EMAKEHR(0x150EL)
+#define COR_E_SERVICEDCOMPONENT         EMAKEHR(0x150FL)
+#define COR_E_METHODACCESS              EMAKEHR(0x1510L)
+#define COR_E_MISSINGFIELD              EMAKEHR(0x1511L)
+#define COR_E_MISSINGMEMBER             EMAKEHR(0x1512L)
+#define COR_E_MISSINGMETHOD             EMAKEHR(0x1513L)
+#define COR_E_MULTICASTNOTSUPPORTED     EMAKEHR(0x1514L)
+#define COR_E_NOTSUPPORTED              EMAKEHR(0x1515L)
+#define COR_E_OVERFLOW                  EMAKEHR(0x1516L)
+#define COR_E_RANK                      EMAKEHR(0x1517L)
+#define COR_E_SYNCHRONIZATIONLOCK       EMAKEHR(0x1518L)
+#define COR_E_THREADINTERRUPTED         EMAKEHR(0x1519L)
+#define COR_E_MEMBERACCESS              EMAKEHR(0x151AL)
+#define COR_E_THREADSTATE               EMAKEHR(0x1520L)
+#define COR_E_THREADSTOP                EMAKEHR(0x1521L)
+#define COR_E_TYPELOAD                  EMAKEHR(0x1522L)
+#define COR_E_ENTRYPOINTNOTFOUND        EMAKEHR(0x1523L)
+#define COR_E_DLLNOTFOUND               EMAKEHR(0x1524L)
+#define COR_E_THREADSTART               EMAKEHR(0x1525L)
+#define COR_E_INVALIDCOMOBJECT          EMAKEHR(0x1527L)
+#define COR_E_NOTFINITENUMBER           EMAKEHR(0x1528L)
+#define COR_E_DUPLICATEWAITOBJECT       EMAKEHR(0x1529L)
+#define COR_E_SEMAPHOREFULL             EMAKEHR(0x152BL)
+#define COR_E_WAITHANDLECANNOTBEOPENED  EMAKEHR(0x152CL)
+#define COR_E_ABANDONEDMUTEX            EMAKEHR(0x152DL)
+#define COR_E_INVALIDOLEVARIANTTYPE     EMAKEHR(0x1531L)
+#define COR_E_MISSINGMANIFESTRESOURCE   EMAKEHR(0x1532L)
+#define COR_E_SAFEARRAYTYPEMISMATCH     EMAKEHR(0x1533L)
+#define COR_E_TYPEINITIALIZATION        EMAKEHR(0x1534L)
+#define COR_E_MARSHALDIRECTIVE          EMAKEHR(0x1535L)
+#define COR_E_MISSINGSATELLITEASSEMBLY  EMAKEHR(0x1536L)
+#define COR_E_FORMAT                    EMAKEHR(0x1537L)
+#define COR_E_SAFEARRAYRANKMISMATCH     EMAKEHR(0x1538L)
+#define COR_E_PLATFORMNOTSUPPORTED      EMAKEHR(0x1539L)
+#define COR_E_INVALIDPROGRAM            EMAKEHR(0x153AL)
+#define COR_E_OPERATIONCANCELED         EMAKEHR(0x153BL)
+#define COR_E_INSUFFICIENTMEMORY        EMAKEHR(0x153DL)
+#define COR_E_RUNTIMEWRAPPED            EMAKEHR(0x153EL)
+#define COR_E_DEVICESNOTSUPPORTED       EMAKEHR(0x1540L)
+#define COR_E_DATAMISALIGNED            EMAKEHR(0x1541L)
+#define COR_E_KEYNOTFOUND               EMAKEHR(0x1577L)
+#define COR_E_APPLICATION               EMAKEHR(0x1600L)
+#define COR_E_INVALIDFILTERCRITERIA     EMAKEHR(0x1601L)
+#define COR_E_REFLECTIONTYPELOAD        EMAKEHR(0x1602L)
+#define COR_E_TARGET                    EMAKEHR(0x1603L)
+#define COR_E_TARGETINVOCATION          EMAKEHR(0x1604L)
+#define COR_E_CUSTOMATTRIBUTEFORMAT     EMAKEHR(0x1605L)
+#define COR_E_IO                        EMAKEHR(0x1620L)
+#define COR_E_FILELOAD                  EMAKEHR(0x1621L)
+#define COR_E_OBJECTDISPOSED            EMAKEHR(0x1622L)
+#define COR_E_FAILFAST                  EMAKEHR(0x1623L)
+#define COR_E_HOSTPROTECTION            EMAKEHR(0x1640L)
+#define COR_E_ILLEGAL_REENTRANCY        EMAKEHR(0x1641L)
+
+#define FUSION_E_INVALID_NAME           EMAKEHR(0x1047)
+
+#endif /* __WINE_CORERROR_H */
diff --git a/reactos/include/psdk/corhdr.h b/reactos/include/psdk/corhdr.h
new file mode 100644 (file)
index 0000000..4064efd
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2008 James Hawkins
+ *
+ * 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
+ */
+
+#ifndef __WINE_CORHDR_H
+#define __WINE_CORHDR_H
+
+typedef enum CorTokenType
+{
+    mdtModule                   = 0x00000000,
+    mdtTypeRef                  = 0x01000000,
+    mdtTypeDef                  = 0x02000000,
+    mdtFieldDef                 = 0x04000000,
+    mdtMethodDef                = 0x06000000,
+    mdtParamDef                 = 0x08000000,
+    mdtInterfaceImpl            = 0x09000000,
+    mdtMemberRef                = 0x0a000000,
+    mdtCustomAttribute          = 0x0c000000,
+    mdtPermission               = 0x0e000000,
+    mdtSignature                = 0x11000000,
+    mdtEvent                    = 0x14000000,
+    mdtProperty                 = 0x17000000,
+    mdtModuleRef                = 0x1a000000,
+    mdtTypeSpec                 = 0x1b000000,
+    mdtAssembly                 = 0x20000000,
+    mdtAssemblyRef              = 0x23000000,
+    mdtFile                     = 0x26000000,
+    mdtExportedType             = 0x27000000,
+    mdtManifestResource         = 0x28000000,
+    mdtGenericParam             = 0x2a000000,
+    mdtMethodSpec               = 0x2b000000,
+    mdtGenericParamConstraint   = 0x2c000000,
+    mdtString                   = 0x70000000,
+    mdtName                     = 0x71000000,
+    mdtBaseType                 = 0x72000000,
+} CorTokenType;
+
+#define RidToToken(rid,tktype) ((rid) |= (tktype))
+#define TokenFromRid(rid,tktype) ((rid) | (tktype))
+#define RidFromToken(tk) ((RID)((tk) & 0x00ffffff))
+#define TypeFromToken(tk) ((ULONG32)((tk) & 0xff000000))
+#define IsNilToken(tk) ((RidFromToken(tk)) == 0)
+
+#endif /* __WINE_CORHDR_H */
index 8dfaa1b..5877eb6 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2007 Francois Gouget
+ * Copyright (C) 2008 Alistair Leslie-Hughes
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -16,6 +17,7 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
+import "unknwn.idl";
 cpp_quote("/* FIXME: #include <gcghost.h> */")
 cpp_quote("/* FIXME: #include <ivalidator.h> */")
 
@@ -25,3 +27,140 @@ cpp_quote("HRESULT     WINAPI GetCORSystemDirectory(LPWSTR,DWORD,DWORD*);")
 cpp_quote("HRESULT     WINAPI GetCORVersion(LPWSTR,DWORD,DWORD*);")
 cpp_quote("HRESULT     WINAPI GetRequestedRuntimeInfo(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,DWORD,LPWSTR,DWORD,DWORD*,LPWSTR,DWORD,DWORD*);")
 cpp_quote("HRESULT     WINAPI LoadLibraryShim(LPCWSTR,LPCWSTR,LPVOID,HMODULE*);")
+
+typedef void* HDOMAINENUM;
+
+[
+    uuid(F31D1788-C397-4725-87A5-6AF3472C2791),
+    version(1.0),
+    object,
+    local
+]
+interface IGCThreadControl : IUnknown
+{
+    HRESULT ThreadIsBlockingForSuspension();
+
+    HRESULT SuspensionStarting();
+
+    HRESULT SuspensionEnding(DWORD generation);
+}
+
+[
+    uuid(5513D564-8374-4cb9-AED9-0083F4160A1D),
+    version(1.1),
+    local,
+    object
+]
+interface IGCHostControl : IUnknown
+{
+    HRESULT RequestVirtualMemLimit([in] SIZE_T nMaxVirtualMemMB,
+                                   [in, out] SIZE_T* nNewMaxVirtualMemMB);
+}
+
+[
+    uuid(23D86786-0BB5-4774-8FB5-E3522ADD6246),
+    version(1.0),
+    local,
+    object
+]
+interface IDebuggerThreadControl : IUnknown
+{
+    HRESULT ThreadIsBlockingForDebugger();
+
+    HRESULT ReleaseAllRuntimeThreads();
+
+    HRESULT StartBlockingForDebugger(DWORD dwUnused);
+}
+
+[
+    uuid(5C2B07A5-1E98-11d3-872F-00C04F79ED0D),
+    version(1.0),
+    local,
+    object
+]
+interface ICorConfiguration : IUnknown
+{
+    HRESULT SetGCThreadControl([in] IGCThreadControl* GCThreadControl);
+
+    HRESULT SetGCHostControl([in] IGCHostControl* GCHostControl);
+
+    HRESULT SetDebuggerThreadControl([in] IDebuggerThreadControl* debuggerThreadControl);
+
+    HRESULT AddDebuggerSpecialThread([in] DWORD specialThreadId);
+}
+
+[
+    uuid(9065597E-D1A1-4fb2-B6BA-7E1FCE230F61),
+    version(1.0),
+    local
+]
+interface ICLRControl : IUnknown
+{
+    HRESULT GetCLRManager([in] REFIID riid, [out] void **ppObject);
+
+        HRESULT SetAppDomainManagerType([in] LPCWSTR appDomainManagerAssembly,
+                          [in] LPCWSTR appDomainManagerType);
+}
+
+[
+    uuid(02CA073C-7079-4860-880A-C2F7A449C991),
+    version(1.0),
+    local
+]
+interface IHostControl : IUnknown
+{
+    HRESULT GetHostManager( [in] REFIID riid, [out] void **ppObject);
+
+    HRESULT SetAppDomainManager([in] DWORD appDomainID,
+                            [in] IUnknown* appDomainManager);
+}
+
+[
+    uuid(CB2F6722-AB3A-11d2-9C40-00C04FA30A3E),
+    version(1.0),
+    local,
+    object
+]
+interface ICorRuntimeHost : IUnknown
+{
+    HRESULT CreateLogicalThreadState();
+    HRESULT DeleteLogicalThreadState();
+    HRESULT SwitchInLogicalThreadState([in] DWORD *fiberCookie);
+
+    HRESULT SwitchOutLogicalThreadState([out] DWORD **fiberCookie);
+
+    HRESULT LocksHeldByLogicalThread( [out] DWORD *pCount );
+
+    HRESULT MapFile([in] HANDLE hFile, [out] HMODULE* mapAddress);
+
+    HRESULT GetConfiguration([out] ICorConfiguration** pConfiguration);
+
+    HRESULT Start();
+
+    HRESULT Stop();
+
+    HRESULT CreateDomain([in] LPCWSTR friendlyName,
+                         [in] IUnknown* identityArray,
+                         [out] IUnknown** appDomain);
+
+    HRESULT GetDefaultDomain([out] IUnknown** pAppDomain);
+
+    HRESULT EnumDomains([out] HDOMAINENUM *hEnum);
+
+    HRESULT NextDomain([in] HDOMAINENUM hEnum, [out] IUnknown** appDomain);
+
+    HRESULT CloseEnum([in] HDOMAINENUM hEnum);
+
+    HRESULT CreateDomainEx([in] LPCWSTR friendlyName,
+                           [in] IUnknown* setup,
+                           [in] IUnknown* evidence,
+                           [out] IUnknown** appDomain);
+
+    HRESULT CreateDomainSetup([out] IUnknown** appDomainSetup);
+
+    HRESULT CreateEvidence([out] IUnknown** evidence);
+
+    HRESULT UnloadDomain([in] IUnknown* appDomain);
+
+    HRESULT CurrentDomain([out] IUnknown** appDomain);
+};