main
h 162 lines 5.94 KB
Raw
1 // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3 int InvokeCustomAction(MSIHANDLE hSession,
4 const wchar_t* szWorkingDir, const wchar_t* szEntryPoint);
5
6 /// <summary>
7 /// Macro for defining and exporting a custom action entrypoint.
8 /// </summary>
9 /// <param name="name">Name of the entrypoint as exported from
10 /// the DLL.</param>
11 /// <param name="method">Path to the managed custom action method,
12 /// in the form: "AssemblyName!Namespace.Class.Method"</param>
13 /// <remarks>
14 /// To prevent the exported name from being decorated, add
15 /// /EXPORT:name to the linker options for every entrypoint.
16 /// </remarks>
17 #define CUSTOMACTION_ENTRYPOINT(name,method) extern "C" int __stdcall \
18 name(MSIHANDLE hSession) { return InvokeCustomAction(hSession, NULL, method); }
19
20 // TEMPLATE ENTRYPOINTS
21 // To be edited by the MakeSfxCA tool.
22
23 #define NULLSPACE \
24 L"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" \
25 L"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" \
26 L"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" \
27 L"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
28
29 #define TEMPLATE_CA_ENTRYPOINT(id,sid) CUSTOMACTION_ENTRYPOINT( \
30 CustomActionEntryPoint##id##, \
31 L"CustomActionEntryPoint" sid NULLSPACE)
32
33 TEMPLATE_CA_ENTRYPOINT(000,L"000");
34 TEMPLATE_CA_ENTRYPOINT(001,L"001");
35 TEMPLATE_CA_ENTRYPOINT(002,L"002");
36 TEMPLATE_CA_ENTRYPOINT(003,L"003");
37 TEMPLATE_CA_ENTRYPOINT(004,L"004");
38 TEMPLATE_CA_ENTRYPOINT(005,L"005");
39 TEMPLATE_CA_ENTRYPOINT(006,L"006");
40 TEMPLATE_CA_ENTRYPOINT(007,L"007");
41 TEMPLATE_CA_ENTRYPOINT(008,L"008");
42 TEMPLATE_CA_ENTRYPOINT(009,L"009");
43 TEMPLATE_CA_ENTRYPOINT(010,L"010");
44 TEMPLATE_CA_ENTRYPOINT(011,L"011");
45 TEMPLATE_CA_ENTRYPOINT(012,L"012");
46 TEMPLATE_CA_ENTRYPOINT(013,L"013");
47 TEMPLATE_CA_ENTRYPOINT(014,L"014");
48 TEMPLATE_CA_ENTRYPOINT(015,L"015");
49 TEMPLATE_CA_ENTRYPOINT(016,L"016");
50 TEMPLATE_CA_ENTRYPOINT(017,L"017");
51 TEMPLATE_CA_ENTRYPOINT(018,L"018");
52 TEMPLATE_CA_ENTRYPOINT(019,L"019");
53 TEMPLATE_CA_ENTRYPOINT(020,L"020");
54 TEMPLATE_CA_ENTRYPOINT(021,L"021");
55 TEMPLATE_CA_ENTRYPOINT(022,L"022");
56 TEMPLATE_CA_ENTRYPOINT(023,L"023");
57 TEMPLATE_CA_ENTRYPOINT(024,L"024");
58 TEMPLATE_CA_ENTRYPOINT(025,L"025");
59 TEMPLATE_CA_ENTRYPOINT(026,L"026");
60 TEMPLATE_CA_ENTRYPOINT(027,L"027");
61 TEMPLATE_CA_ENTRYPOINT(028,L"028");
62 TEMPLATE_CA_ENTRYPOINT(029,L"029");
63 TEMPLATE_CA_ENTRYPOINT(030,L"030");
64 TEMPLATE_CA_ENTRYPOINT(031,L"031");
65 TEMPLATE_CA_ENTRYPOINT(032,L"032");
66 TEMPLATE_CA_ENTRYPOINT(033,L"033");
67 TEMPLATE_CA_ENTRYPOINT(034,L"034");
68 TEMPLATE_CA_ENTRYPOINT(035,L"035");
69 TEMPLATE_CA_ENTRYPOINT(036,L"036");
70 TEMPLATE_CA_ENTRYPOINT(037,L"037");
71 TEMPLATE_CA_ENTRYPOINT(038,L"038");
72 TEMPLATE_CA_ENTRYPOINT(039,L"039");
73 TEMPLATE_CA_ENTRYPOINT(040,L"040");
74 TEMPLATE_CA_ENTRYPOINT(041,L"041");
75 TEMPLATE_CA_ENTRYPOINT(042,L"042");
76 TEMPLATE_CA_ENTRYPOINT(043,L"043");
77 TEMPLATE_CA_ENTRYPOINT(044,L"044");
78 TEMPLATE_CA_ENTRYPOINT(045,L"045");
79 TEMPLATE_CA_ENTRYPOINT(046,L"046");
80 TEMPLATE_CA_ENTRYPOINT(047,L"047");
81 TEMPLATE_CA_ENTRYPOINT(048,L"048");
82 TEMPLATE_CA_ENTRYPOINT(049,L"049");
83 TEMPLATE_CA_ENTRYPOINT(050,L"050");
84 TEMPLATE_CA_ENTRYPOINT(051,L"051");
85 TEMPLATE_CA_ENTRYPOINT(052,L"052");
86 TEMPLATE_CA_ENTRYPOINT(053,L"053");
87 TEMPLATE_CA_ENTRYPOINT(054,L"054");
88 TEMPLATE_CA_ENTRYPOINT(055,L"055");
89 TEMPLATE_CA_ENTRYPOINT(056,L"056");
90 TEMPLATE_CA_ENTRYPOINT(057,L"057");
91 TEMPLATE_CA_ENTRYPOINT(058,L"058");
92 TEMPLATE_CA_ENTRYPOINT(059,L"059");
93 TEMPLATE_CA_ENTRYPOINT(060,L"060");
94 TEMPLATE_CA_ENTRYPOINT(061,L"061");
95 TEMPLATE_CA_ENTRYPOINT(062,L"062");
96 TEMPLATE_CA_ENTRYPOINT(063,L"063");
97 TEMPLATE_CA_ENTRYPOINT(064,L"064");
98 TEMPLATE_CA_ENTRYPOINT(065,L"065");
99 TEMPLATE_CA_ENTRYPOINT(066,L"066");
100 TEMPLATE_CA_ENTRYPOINT(067,L"067");
101 TEMPLATE_CA_ENTRYPOINT(068,L"068");
102 TEMPLATE_CA_ENTRYPOINT(069,L"069");
103 TEMPLATE_CA_ENTRYPOINT(070,L"070");
104 TEMPLATE_CA_ENTRYPOINT(071,L"071");
105 TEMPLATE_CA_ENTRYPOINT(072,L"072");
106 TEMPLATE_CA_ENTRYPOINT(073,L"073");
107 TEMPLATE_CA_ENTRYPOINT(074,L"074");
108 TEMPLATE_CA_ENTRYPOINT(075,L"075");
109 TEMPLATE_CA_ENTRYPOINT(076,L"076");
110 TEMPLATE_CA_ENTRYPOINT(077,L"077");
111 TEMPLATE_CA_ENTRYPOINT(078,L"078");
112 TEMPLATE_CA_ENTRYPOINT(079,L"079");
113 TEMPLATE_CA_ENTRYPOINT(080,L"080");
114 TEMPLATE_CA_ENTRYPOINT(081,L"081");
115 TEMPLATE_CA_ENTRYPOINT(082,L"082");
116 TEMPLATE_CA_ENTRYPOINT(083,L"083");
117 TEMPLATE_CA_ENTRYPOINT(084,L"084");
118 TEMPLATE_CA_ENTRYPOINT(085,L"085");
119 TEMPLATE_CA_ENTRYPOINT(086,L"086");
120 TEMPLATE_CA_ENTRYPOINT(087,L"087");
121 TEMPLATE_CA_ENTRYPOINT(088,L"088");
122 TEMPLATE_CA_ENTRYPOINT(089,L"089");
123 TEMPLATE_CA_ENTRYPOINT(090,L"090");
124 TEMPLATE_CA_ENTRYPOINT(091,L"091");
125 TEMPLATE_CA_ENTRYPOINT(092,L"092");
126 TEMPLATE_CA_ENTRYPOINT(093,L"093");
127 TEMPLATE_CA_ENTRYPOINT(094,L"094");
128 TEMPLATE_CA_ENTRYPOINT(095,L"095");
129 TEMPLATE_CA_ENTRYPOINT(096,L"096");
130 TEMPLATE_CA_ENTRYPOINT(097,L"097");
131 TEMPLATE_CA_ENTRYPOINT(098,L"098");
132 TEMPLATE_CA_ENTRYPOINT(099,L"099");
133 TEMPLATE_CA_ENTRYPOINT(100,L"100");
134 TEMPLATE_CA_ENTRYPOINT(101,L"101");
135 TEMPLATE_CA_ENTRYPOINT(102,L"102");
136 TEMPLATE_CA_ENTRYPOINT(103,L"103");
137 TEMPLATE_CA_ENTRYPOINT(104,L"104");
138 TEMPLATE_CA_ENTRYPOINT(105,L"105");
139 TEMPLATE_CA_ENTRYPOINT(106,L"106");
140 TEMPLATE_CA_ENTRYPOINT(107,L"107");
141 TEMPLATE_CA_ENTRYPOINT(108,L"108");
142 TEMPLATE_CA_ENTRYPOINT(109,L"109");
143 TEMPLATE_CA_ENTRYPOINT(110,L"110");
144 TEMPLATE_CA_ENTRYPOINT(111,L"111");
145 TEMPLATE_CA_ENTRYPOINT(112,L"112");
146 TEMPLATE_CA_ENTRYPOINT(113,L"113");
147 TEMPLATE_CA_ENTRYPOINT(114,L"114");
148 TEMPLATE_CA_ENTRYPOINT(115,L"115");
149 TEMPLATE_CA_ENTRYPOINT(116,L"116");
150 TEMPLATE_CA_ENTRYPOINT(117,L"117");
151 TEMPLATE_CA_ENTRYPOINT(118,L"118");
152 TEMPLATE_CA_ENTRYPOINT(119,L"119");
153 TEMPLATE_CA_ENTRYPOINT(120,L"120");
154 TEMPLATE_CA_ENTRYPOINT(121,L"121");
155 TEMPLATE_CA_ENTRYPOINT(122,L"122");
156 TEMPLATE_CA_ENTRYPOINT(123,L"123");
157 TEMPLATE_CA_ENTRYPOINT(124,L"124");
158 TEMPLATE_CA_ENTRYPOINT(125,L"125");
159 TEMPLATE_CA_ENTRYPOINT(126,L"126");
160 TEMPLATE_CA_ENTRYPOINT(127,L"127");
161
162 // Note: Keep in sync with EntryPoints.def