user32/tests: Improve timer measurement method.
[wine.git] / include / corsym.idl
blob8edf92d51468195bbe64a3dd75a8419995c6d54d
1 /*
2 * Copyright (C) 2022 Esme Povirk
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 import "unknwn.idl";
20 import "objidl.idl";
21 import "oaidl.idl";
23 cpp_quote("#if 0")
24 /* defined in corhdr.h */
25 typedef UINT32 mdToken;
26 typedef mdToken mdMethodDef;
27 typedef mdToken mdTypeDef;
28 typedef mdToken mdSignature;
29 /* defined in winnt.h */
30 typedef SIZE_T IMAGE_DEBUG_DIRECTORY;
31 cpp_quote("#endif")
34 object,
35 uuid(b01fafeb-c450-3a4d-beec-b4ceec01e006),
36 pointer_default(unique)
38 interface ISymUnmanagedDocumentWriter : IUnknown
40 HRESULT SetSource([in] ULONG32 sourceSize, [in, size_is(sourceSize)] BYTE source[]);
41 HRESULT SetCheckSum([in] GUID algorithmId,
42 [in] ULONG32 checkSumSize, [in, size_is(checkSumSize)] BYTE checkSum[]);
46 object,
47 uuid(ed14aa72-78e2-4884-84e2-334293ae5214),
48 pointer_default(unique)
50 interface ISymUnmanagedWriter : IUnknown
52 HRESULT DefineDocument([in] const WCHAR *url, [in] const GUID *language, [in] const GUID *languageVendor,
53 [in] const GUID *documentType, [out, retval] ISymUnmanagedDocumentWriter** pRetVal);
54 HRESULT SetUserEntryPoint([in] mdMethodDef entryMethod);
55 HRESULT OpenMethod([in] mdMethodDef method);
56 HRESULT CloseMethod();
57 HRESULT OpenScope([in] ULONG32 startOffset, [out, retval] ULONG32 *pRetVal);
58 HRESULT CloseScope([in] ULONG32 endOffset);
59 HRESULT SetScopeRange([in] ULONG32 scopeID, [in] ULONG32 startOffset, [in] ULONG32 endOffset);
60 HRESULT DefineLocalVariable([in] const WCHAR *name, [in] ULONG32 attributes, [in] ULONG32 cSig,
61 [in, size_is(cSig)] unsigned char signature[], [in] ULONG32 addrKind,
62 [in] ULONG32 addr1, [in] ULONG32 addr2, [in] ULONG32 addr3,
63 [in] ULONG32 startOffset, [in] ULONG32 endOffset);
64 HRESULT DefineParameter([in] const WCHAR *name, [in] ULONG32 attributes, [in] ULONG32 sequence,
65 [in] ULONG32 addrKind,
66 [in] ULONG32 addr1, [in] ULONG32 addr2, [in] ULONG32 addr3);
67 HRESULT DefineField([in] mdTypeDef parent, [in] const WCHAR *name, [in] ULONG32 attributes, [in] ULONG32 cSig,
68 [in, size_is(cSig)] unsigned char signature[], [in] ULONG32 addrKind,
69 [in] ULONG32 addr1, [in] ULONG32 addr2, [in] ULONG32 addr3);
70 HRESULT DefineGlobalVariable([in] const WCHAR *name, [in] ULONG32 attributes, [in] ULONG32 cSig,
71 [in, size_is(cSig)] unsigned char signature[], [in] ULONG32 addrKind,
72 [in] ULONG32 addr1, [in] ULONG32 addr2, [in] ULONG32 addr3);
73 HRESULT Close();
74 HRESULT SetSymAttributes([in] mdToken parent, [in] const WCHAR *name,
75 [in] ULONG32 cData, [in, size_is(cData)] unsigned char data[]);
76 HRESULT OpenNamespace([in] const WCHAR *name);
77 HRESULT CloseNamespace();
78 HRESULT UsingNamespace([in] const WCHAR *fullName);
79 HRESULT SetMethodSourceRange([in] ISymUnmanagedDocumentWriter *startDoc, ULONG32 startLine, ULONG32 startColumn,
80 [in] ISymUnmanagedDocumentWriter *endDoc, ULONG32 endLine, ULONG32 endColumn);
81 HRESULT Initialize([in] IUnknown *emitter, [in] const WCHAR *filename, [in] IStream *pIStream,
82 [in] BOOL fFullBuild);
83 HRESULT GetDebugInfo([in, out] IMAGE_DEBUG_DIRECTORY *pIDD, [in] DWORD cData, [out] DWORD *pcData,
84 [out, size_is(cData), length_is(*pcData)] BYTE data[]);
85 HRESULT DefineSequencePoints([in] ISymUnmanagedDocumentWriter *document, [in] ULONG32 spCount,
86 [in, size_is(spCount)] ULONG32 offsets[], [in, size_is(spCount)] ULONG32 lines[],
87 [in, size_is(spCount)] ULONG32 columns[], [in, size_is(spCount)] ULONG32 endLines[],
88 [in, size_is(spCount)] ULONG32 endColumns[]);
89 HRESULT RemapToken([in] mdToken oldToken, [in] mdToken newToken);
90 HRESULT Initialize2([in] IUnknown *emitter, [in] const WCHAR *tempFilename, [in] IStream *pIStream,
91 [in] BOOL fFullBuild, [in] const WCHAR *finalFilename);
92 HRESULT DefineConstant([in] const WCHAR *name, [in] VARIANT value, [in] ULONG32 cSig,
93 [in, size_is(cSig)] unsigned char signature[]);
94 HRESULT Abort();
98 object,
99 uuid(0b97726e-9e6d-4f05-9a26-424022093caa),
100 pointer_default(unique)
102 interface ISymUnmanagedWriter2 : ISymUnmanagedWriter
104 HRESULT DefineLocalVariable2([in] const WCHAR *name, [in] ULONG32 attributes, [in] mdSignature sigToken,
105 [in] ULONG32 addrKind, [in] ULONG32 addr1, [in] ULONG32 addr2, [in] ULONG32 addr3,
106 [in] ULONG32 startOffset, [in] ULONG32 endOffset);
107 HRESULT DefineGlobalVariable2([in] const WCHAR *name, [in] ULONG32 attributes, [in] mdSignature sigToken,
108 [in] ULONG32 addrKind, [in] ULONG32 addr1, [in] ULONG32 addr2, [in] ULONG32 addr3);
109 HRESULT DefineConstant2([in] const WCHAR *name, [in] VARIANT value, [in] mdSignature sigToken);
113 object,
114 uuid(12f1e02c-1e05-4b0e-9468-ebc9d1bb040f),
115 pointer_default(unique)
117 interface ISymUnmanagedWriter3 : ISymUnmanagedWriter2
119 HRESULT OpenMethod2([in] mdMethodDef method, [in] ULONG32 isect, [in] ULONG32 offset);
120 HRESULT Commit();
124 object,
125 uuid(bc7e3f53-f458-4c23-9dbd-a189e6e96594),
126 pointer_default(unique)
128 interface ISymUnmanagedWriter4 : ISymUnmanagedWriter3
130 HRESULT GetDebugInfoWithPadding([in, out] IMAGE_DEBUG_DIRECTORY *pIDD, [in] DWORD cbData, [out] DWORD* pcData,
131 [out, size_is(cbData), length_is(*pcData)] BYTE data[]);
135 object,
136 uuid(dcf7780d-bde9-45df-acfe-21731a32000c),
137 pointer_default(unique)
139 interface ISymUnmanagedWriter5 : ISymUnmanagedWriter4
141 HRESULT OpenMapTokensToSourceSpans();
142 HRESULT CloseMapTokensToSourceSpans();
143 HRESULT MapTokenToSourceSpan([in] mdToken token, [in] ISymUnmanagedDocumentWriter* document,
144 [in] ULONG32 line, [in] ULONG32 column, [in] ULONG32 endLine, [in] ULONG32 endColumn);
147 cpp_quote("DEFINE_GUID(CLSID_CorSymWriter_SxS, 0x0ae2deb0,0xf901,0x478b,0xbb,0x9f,0x88,0x1e,0xe8,0x06,0x67,0x88);")