[PATCH 1/5] include: Add ISymUnmanagedWriter definition.

Esme Povirk esme at codeweavers.com
Fri Jan 28 13:00:50 CST 2022


Signed-off-by: Esme Povirk <esme at codeweavers.com>
---
 include/Makefile.in |  1 +
 include/corsym.idl  | 97 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 98 insertions(+)
 create mode 100644 include/corsym.idl

diff --git a/include/Makefile.in b/include/Makefile.in
index 7fcf5f0ba7b..2f1e4767848 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -89,6 +89,7 @@ SOURCES = \
 	cordebug.idl \
 	corerror.h \
 	corhdr.h \
+	corsym.idl \
 	cpl.h \
 	crtrow.idl \
 	cryptdlg.h \
diff --git a/include/corsym.idl b/include/corsym.idl
new file mode 100644
index 00000000000..5faf32c0ddd
--- /dev/null
+++ b/include/corsym.idl
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2022 Esme Povirk
+ *
+ * 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 "unknwn.idl";
+import "objidl.idl";
+import "oaidl.idl";
+
+cpp_quote("#if 0")
+/* defined in corhdr.h */
+typedef UINT32 mdToken;
+typedef mdToken mdMethodDef;
+typedef mdToken mdTypeDef;
+/* defined in winnt.h */
+typedef SIZE_T IMAGE_DEBUG_DIRECTORY;
+cpp_quote("#endif")
+
+[
+    object,
+    uuid(b01fafeb-c450-3a4d-beec-b4ceec01e006),
+    pointer_default(unique)
+]
+interface ISymUnmanagedDocumentWriter : IUnknown
+{
+    HRESULT SetSource([in] ULONG32 sourceSize, [in, size_is(sourceSize)] BYTE source[]);
+    HRESULT SetCheckSum([in] GUID algorithmId,
+                        [in] ULONG32 checkSumSize, [in, size_is(checkSumSize)] BYTE checkSum[]);
+}
+
+[
+    object,
+    uuid(ed14aa72-78e2-4884-84e2-334293ae5214),
+    pointer_default(unique)
+]
+interface ISymUnmanagedWriter : IUnknown
+{
+    HRESULT DefineDocument([in] const WCHAR *url, [in] const GUID *language, [in] const GUID *languageVendor,
+                           [in] const GUID *documentType, [out, retval] ISymUnmanagedDocumentWriter** pRetVal);
+    HRESULT SetUserEntryPoint([in] mdMethodDef entryMethod);
+    HRESULT OpenMethod([in] mdMethodDef method);
+    HRESULT CloseMethod();
+    HRESULT OpenScope([in] ULONG32 startOffset, [out, retval] ULONG32 *pRetVal);
+    HRESULT CloseScope([in] ULONG32 endOffset);
+    HRESULT SetScopeRange([in] ULONG32 scopeID, [in] ULONG32 startOffset, [in] ULONG32 endOffset);
+    HRESULT DefineLocalVariable([in] const WCHAR *name, [in] ULONG32 attributes, [in] ULONG32 cSig,
+                                [in, size_is(cSig)] unsigned char signature[], [in] ULONG32 addrKind,
+                                [in] ULONG32 addr1, [in] ULONG32 addr2, [in] ULONG32 addr3,
+                                [in] ULONG32 startOffset, [in] ULONG32 endOffset);
+    HRESULT DefineParameter([in] const WCHAR *name, [in] ULONG32 attributes, [in] ULONG32 sequence,
+                            [in] ULONG32 addrKind,
+                            [in] ULONG32 addr1, [in] ULONG32 addr2, [in] ULONG32 addr3);
+    HRESULT DefineField([in] mdTypeDef parent, [in] const WCHAR *name, [in] ULONG32 attributes, [in] ULONG32 cSig,
+                        [in, size_is(cSig)] unsigned char signature[], [in] ULONG32 addrKind,
+                        [in] ULONG32 addr1, [in] ULONG32 addr2, [in] ULONG32 addr3);
+    HRESULT DefineGlobalVariable([in] const WCHAR *name, [in] ULONG32 attributes, [in] ULONG32 cSig,
+                                 [in, size_is(cSig)] unsigned char signature[], [in] ULONG32 addrKind,
+                                 [in] ULONG32 addr1, [in] ULONG32 addr2, [in] ULONG32 addr3);
+    HRESULT Close();
+    HRESULT SetSymAttributes([in] mdToken parent, [in] const WCHAR *name,
+                             [in] ULONG32 cData, [in, size_is(cData)] unsigned char data[]);
+    HRESULT OpenNamespace([in] const WCHAR *name);
+    HRESULT CloseNamespace();
+    HRESULT UsingNamespace([in] const WCHAR *fullName);
+    HRESULT SetMethodSourceRange([in] ISymUnmanagedDocumentWriter *startDoc, ULONG32 startLine, ULONG32 startColumn,
+                                 [in] ISymUnmanagedDocumentWriter *endDoc, ULONG32 endLine, ULONG32 endColumn);
+    HRESULT Initialize([in] IUnknown *emitter, [in] const WCHAR *filename, [in] IStream *pIStream,
+                       [in] BOOL fFullBuild);
+    HRESULT GetDebugInfo([in, out] IMAGE_DEBUG_DIRECTORY *pIDD, [in] DWORD cData, [out] DWORD *pcData,
+                         [out, size_is(cData), length_is(*pcData)] BYTE data[]);
+    HRESULT DefineSequencePoints([in] ISymUnmanagedDocumentWriter *document, [in] ULONG32 spCount,
+                                 [in, size_is(spCount)] ULONG32 offsets[], [in, size_is(spCount)] ULONG32 lines[],
+                                 [in, size_is(spCount)] ULONG32 columns[], [in, size_is(spCount)] ULONG32 endLines[],
+                                 [in, size_is(spCount)] ULONG32 endColumns[]);
+    HRESULT RemapToken([in] mdToken oldToken, [in] mdToken newToken);
+    HRESULT Initialize2([in] IUnknown *emitter, [in] const WCHAR *tempFilename, [in] IStream *pIStream,
+                        [in] BOOL fFullBuild, [in] const WCHAR *finalFilename);
+    HRESULT DefineConstant([in] const WCHAR *name, [in] VARIANT value, [in] ULONG32 cSig,
+                           [in, size_is(cSig)] unsigned char signature[]);
+    HRESULT Abort();
+}
+
+cpp_quote("DEFINE_GUID(CLSID_CorSymWriter_SxS, 0x0ae2deb0,0xf901,0x478b,0xbb,0x9f,0x88,0x1e,0xe8,0x06,0x67,0x88);")
+
-- 
2.30.2




More information about the wine-devel mailing list