Signed-off-by: Esme Povirk esme@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);") +