| 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 |