1 /**
2  * Windows API header module
3  *
4  * Translated from MinGW Windows headers
5  *
6  * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
7  * Source: $(DRUNTIMESRC core/sys/windows/_oledlg.d)
8  */
9 module nulib.system.win32.oledlg;
10 import nulib.system.win32.commdlg;
11 import nulib.system.win32.dlgs;
12 import nulib.system.win32.ole2;
13 import nulib.system.win32.prsht;
14 import nulib.system.win32.shellapi;
15 import nulib.system.win32.winbase; 
16 import nulib.system.win32.objidl; 
17 import nulib.system.win32.winnt;
18 import nulib.system.com;
19 
20 version (ANSI) {} else version = Unicode;
21 
22 // FIXME: remove inherited methods from interface definitions
23 
24 enum PS_MAXLINKTYPES=8;
25 
26 const TCHAR[] OLESTDDELIM = "\\";
27 const TCHAR[] SZOLEUI_MSG_HELP = "OLEUI_MSG_HELP";
28 const TCHAR[] SZOLEUI_MSG_ENDDIALOG = "OLEUI_MSG_ENDDIALOG";
29 const TCHAR[] SZOLEUI_MSG_BROWSE = "OLEUI_MSG_BROWSE";
30 const TCHAR[] SZOLEUI_MSG_CHANGEICON = "OLEUI_MSG_CHANGEICON";
31 const TCHAR[] SZOLEUI_MSG_CLOSEBUSYDIALOG = "OLEUI_MSG_CLOSEBUSYDIALOG";
32 const TCHAR[] SZOLEUI_MSG_CONVERT = "OLEUI_MSG_CONVERT";
33 const TCHAR[] SZOLEUI_MSG_CHANGESOURCE = "OLEUI_MSG_CHANGESOURCE";
34 const TCHAR[] SZOLEUI_MSG_ADDCONTROL = "OLEUI_MSG_ADDCONTROL";
35 const TCHAR[] SZOLEUI_MSG_BROWSE_OFN = "OLEUI_MSG_BROWSE_OFN";
36 
37 const TCHAR[] PROP_HWND_CHGICONDLG = "HWND_CIDLG";
38 
39 enum IDC_OLEUIHELP=99;
40 
41 enum {
42     IDC_IO_CREATENEW = 2100,
43     IDC_IO_CREATEFROMFILE,
44     IDC_IO_LINKFILE,
45     IDC_IO_OBJECTTYPELIST,
46     IDC_IO_DISPLAYASICON,
47     IDC_IO_CHANGEICON,
48     IDC_IO_FILE,
49     IDC_IO_FILEDISPLAY,
50     IDC_IO_RESULTIMAGE,
51     IDC_IO_RESULTTEXT,
52     IDC_IO_ICONDISPLAY,
53     IDC_IO_OBJECTTYPETEXT,
54     IDC_IO_FILETEXT,
55     IDC_IO_FILETYPE,
56     IDC_IO_INSERTCONTROL,
57     IDC_IO_ADDCONTROL,
58     IDC_IO_CONTROLTYPELIST // = 2116
59 }
60 
61 enum IDC_PS_PASTE=500;
62 enum IDC_PS_PASTELINK=501;
63 enum IDC_PS_SOURCETEXT=502;
64 enum IDC_PS_PASTELIST=503;
65 enum IDC_PS_PASTELINKLIST=504;
66 enum IDC_PS_DISPLAYLIST=505;
67 enum IDC_PS_DISPLAYASICON=506;
68 enum IDC_PS_ICONDISPLAY=507;
69 enum IDC_PS_CHANGEICON=508;
70 enum IDC_PS_RESULTIMAGE=509;
71 enum IDC_PS_RESULTTEXT=510;
72 
73 enum IDC_CI_GROUP=120;
74 enum IDC_CI_CURRENT=121;
75 enum IDC_CI_CURRENTICON=122;
76 enum IDC_CI_DEFAULT=123;
77 enum IDC_CI_DEFAULTICON=124;
78 enum IDC_CI_FROMFILE=125;
79 enum IDC_CI_FROMFILEEDIT=126;
80 enum IDC_CI_ICONLIST=127;
81 enum IDC_CI_LABEL=128;
82 enum IDC_CI_LABELEDIT=129;
83 enum IDC_CI_BROWSE=130;
84 enum IDC_CI_ICONDISPLAY=131;
85 
86 enum IDC_CV_OBJECTTYPE=150;
87 enum IDC_CV_DISPLAYASICON=152;
88 enum IDC_CV_CHANGEICON=153;
89 enum IDC_CV_ACTIVATELIST=154;
90 enum IDC_CV_CONVERTTO=155;
91 enum IDC_CV_ACTIVATEAS=156;
92 enum IDC_CV_RESULTTEXT=157;
93 enum IDC_CV_CONVERTLIST=158;
94 enum IDC_CV_ICONDISPLAY=165;
95 
96 enum IDC_EL_CHANGESOURCE=201;
97 enum IDC_EL_AUTOMATIC=202;
98 enum IDC_EL_CANCELLINK=209;
99 enum IDC_EL_UPDATENOW=210;
100 enum IDC_EL_OPENSOURCE=211;
101 enum IDC_EL_MANUAL=212;
102 enum IDC_EL_LINKSOURCE=216;
103 enum IDC_EL_LINKTYPE=217;
104 enum IDC_EL_LINKSLISTBOX=206;
105 enum IDC_EL_COL1=220;
106 enum IDC_EL_COL2=221;
107 enum IDC_EL_COL3=222;
108 
109 enum IDC_BZ_RETRY=600;
110 enum IDC_BZ_ICON=601;
111 enum IDC_BZ_MESSAGE1=602;
112 enum IDC_BZ_SWITCHTO=604;
113 
114 enum IDC_UL_METER=1029;
115 enum IDC_UL_STOP=1030;
116 enum IDC_UL_PERCENT=1031;
117 enum IDC_UL_PROGRESS=1032;
118 
119 enum IDC_PU_LINKS=900;
120 enum IDC_PU_TEXT=901;
121 enum IDC_PU_CONVERT=902;
122 enum IDC_PU_ICON=908;
123 
124 enum IDC_GP_OBJECTNAME=1009;
125 enum IDC_GP_OBJECTTYPE=1010;
126 enum IDC_GP_OBJECTSIZE=1011;
127 enum IDC_GP_CONVERT=1013;
128 enum IDC_GP_OBJECTICON=1014;
129 enum IDC_GP_OBJECTLOCATION=1022;
130 
131 enum IDC_VP_PERCENT=1000;
132 enum IDC_VP_CHANGEICON=1001;
133 enum IDC_VP_EDITABLE=1002;
134 enum IDC_VP_ASICON=1003;
135 enum IDC_VP_RELATIVE=1005;
136 enum IDC_VP_SPIN=1006;
137 enum IDC_VP_SCALETXT=1034;
138 enum IDC_VP_ICONDISPLAY=1021;
139 enum IDC_VP_RESULTIMAGE=1033;
140 
141 enum IDC_LP_OPENSOURCE=1006;
142 enum IDC_LP_UPDATENOW=1007;
143 enum IDC_LP_BREAKLINK=1008;
144 enum IDC_LP_LINKSOURCE=1012;
145 enum IDC_LP_CHANGESOURCE=1015;
146 enum IDC_LP_AUTOMATIC=1016;
147 enum IDC_LP_MANUAL=1017;
148 enum IDC_LP_DATE=1018;
149 enum IDC_LP_TIME=1019;
150 
151 enum IDD_INSERTOBJECT=1000;
152 enum IDD_CHANGEICON=1001;
153 enum IDD_CONVERT=1002;
154 enum IDD_PASTESPECIAL=1003;
155 enum IDD_EDITLINKS=1004;
156 enum IDD_BUSY=1006;
157 enum IDD_UPDATELINKS=1007;
158 enum IDD_CHANGESOURCE=1009;
159 enum IDD_INSERTFILEBROWSE=1010;
160 enum IDD_CHANGEICONBROWSE=1011;
161 enum IDD_CONVERTONLY=1012;
162 enum IDD_CHANGESOURCE4=1013;
163 enum IDD_GNRLPROPS=1100;
164 enum IDD_VIEWPROPS=1101;
165 enum IDD_LINKPROPS=1102;
166 enum IDD_CANNOTUPDATELINK=1008;
167 enum IDD_LINKSOURCEUNAVAILABLE=1020;
168 enum IDD_SERVERNOTFOUND=1023;
169 enum IDD_OUTOFMEMORY=1024;
170 enum IDD_SERVERNOTREGW=1021;
171 enum IDD_LINKTYPECHANGEDW=1022;
172 enum IDD_SERVERNOTREGA=1025;
173 enum IDD_LINKTYPECHANGEDA=1026;
174 
175 enum ID_BROWSE_CHANGEICON=1;
176 enum ID_BROWSE_INSERTFILE=2;
177 enum ID_BROWSE_ADDCONTROL=3;
178 enum ID_BROWSE_CHANGESOURCE=4;
179 
180 enum OLEUI_FALSE=0;
181 enum OLEUI_SUCCESS=1;
182 enum OLEUI_OK=1;
183 enum OLEUI_CANCEL=2;
184 
185 enum OLEUI_ERR_STANDARDMIN=100;
186 enum OLEUI_ERR_STRUCTURENULL=101;
187 enum OLEUI_ERR_STRUCTUREINVALID=102;
188 enum OLEUI_ERR_CBSTRUCTINCORRECT=103;
189 enum OLEUI_ERR_HWNDOWNERINVALID=104;
190 enum OLEUI_ERR_LPSZCAPTIONINVALID=105;
191 enum OLEUI_ERR_LPFNHOOKINVALID=106;
192 enum OLEUI_ERR_HINSTANCEINVALID=107;
193 enum OLEUI_ERR_LPSZTEMPLATEINVALID=108;
194 enum OLEUI_ERR_HRESOURCEINVALID=109;
195 enum OLEUI_ERR_FINDTEMPLATEFAILURE=110;
196 enum OLEUI_ERR_LOADTEMPLATEFAILURE=111;
197 enum OLEUI_ERR_DIALOGFAILURE=112;
198 enum OLEUI_ERR_LOCALMEMALLOC=113;
199 enum OLEUI_ERR_GLOBALMEMALLOC=114;
200 enum OLEUI_ERR_LOADSTRING=115;
201 enum OLEUI_ERR_OLEMEMALLOC=116;
202 enum OLEUI_ERR_STANDARDMAX=116;
203 
204 enum OPF_OBJECTISLINK=1;
205 enum OPF_NOFILLDEFAULT=2;
206 enum OPF_SHOWHELP=4;
207 enum OPF_DISABLECONVERT=8;
208 
209 enum OLEUI_OPERR_SUBPROPNULL=OLEUI_ERR_STANDARDMAX;
210 enum OLEUI_OPERR_SUBPROPINVALID=(OLEUI_ERR_STANDARDMAX+1);
211 enum OLEUI_OPERR_PROPSHEETNULL=(OLEUI_ERR_STANDARDMAX+2);
212 enum OLEUI_OPERR_PROPSHEETINVALID=(OLEUI_ERR_STANDARDMAX+3);
213 enum OLEUI_OPERR_SUPPROP=(OLEUI_ERR_STANDARDMAX+4);
214 enum OLEUI_OPERR_PROPSINVALID=(OLEUI_ERR_STANDARDMAX+5);
215 enum OLEUI_OPERR_PAGESINCORRECT=(OLEUI_ERR_STANDARDMAX+6);
216 enum OLEUI_OPERR_INVALIDPAGES=(OLEUI_ERR_STANDARDMAX+7);
217 enum OLEUI_OPERR_NOTSUPPORTED=(OLEUI_ERR_STANDARDMAX+8);
218 enum OLEUI_OPERR_DLGPROCNOTNULL=(OLEUI_ERR_STANDARDMAX+9);
219 enum OLEUI_OPERR_LPARAMNOTZERO=(OLEUI_ERR_STANDARDMAX+10);
220 enum OLEUI_GPERR_STRINGINVALID=(OLEUI_ERR_STANDARDMAX+11);
221 enum OLEUI_GPERR_CLASSIDINVALID=(OLEUI_ERR_STANDARDMAX+12);
222 enum OLEUI_GPERR_LPCLSIDEXCLUDEINVALID=(OLEUI_ERR_STANDARDMAX+13);
223 enum OLEUI_GPERR_CBFORMATINVALID=(OLEUI_ERR_STANDARDMAX+14);
224 enum OLEUI_VPERR_METAPICTINVALID=(OLEUI_ERR_STANDARDMAX+15);
225 enum OLEUI_VPERR_DVASPECTINVALID=(OLEUI_ERR_STANDARDMAX+16);
226 enum OLEUI_LPERR_LINKCNTRNULL=(OLEUI_ERR_STANDARDMAX+17);
227 enum OLEUI_LPERR_LINKCNTRINVALID=(OLEUI_ERR_STANDARDMAX+18);
228 enum OLEUI_OPERR_PROPERTYSHEET=(OLEUI_ERR_STANDARDMAX+19);
229 enum OLEUI_OPERR_OBJINFOINVALID=(OLEUI_ERR_STANDARDMAX+20);
230 enum OLEUI_OPERR_LINKINFOINVALID=(OLEUI_ERR_STANDARDMAX+21);
231 
232 enum OLEUI_QUERY_GETCLASSID=65280;
233 enum OLEUI_QUERY_LINKBROKEN=65281;
234 
235 enum IOF_SHOWHELP=1;
236 enum IOF_SELECTCREATENEW=2;
237 enum IOF_SELECTCREATEFROMFILE=4;
238 enum IOF_CHECKLINK=8;
239 enum IOF_CHECKDISPLAYASICON=16;
240 enum IOF_CREATENEWOBJECT=32;
241 enum IOF_CREATEFILEOBJECT=64;
242 enum IOF_CREATELINKOBJECT=128;
243 enum IOF_DISABLELINK=256;
244 enum IOF_VERIFYSERVERSEXIST=512;
245 enum IOF_DISABLEDISPLAYASICON=1024;
246 enum IOF_HIDECHANGEICON=2048;
247 enum IOF_SHOWINSERTCONTROL=4096;
248 enum IOF_SELECTCREATECONTROL=8192;
249 
250 enum OLEUI_IOERR_LPSZFILEINVALID=OLEUI_ERR_STANDARDMAX;
251 enum OLEUI_IOERR_LPSZLABELINVALID=(OLEUI_ERR_STANDARDMAX+1);
252 enum OLEUI_IOERR_HICONINVALID=(OLEUI_ERR_STANDARDMAX+2);
253 enum OLEUI_IOERR_LPFORMATETCINVALID=(OLEUI_ERR_STANDARDMAX+3);
254 enum OLEUI_IOERR_PPVOBJINVALID=(OLEUI_ERR_STANDARDMAX+4);
255 enum OLEUI_IOERR_LPIOLECLIENTSITEINVALID=(OLEUI_ERR_STANDARDMAX+5);
256 enum OLEUI_IOERR_LPISTORAGEINVALID=(OLEUI_ERR_STANDARDMAX+6);
257 enum OLEUI_IOERR_SCODEHASERROR=(OLEUI_ERR_STANDARDMAX+7);
258 enum OLEUI_IOERR_LPCLSIDEXCLUDEINVALID=(OLEUI_ERR_STANDARDMAX+8);
259 enum OLEUI_IOERR_CCHFILEINVALID=(OLEUI_ERR_STANDARDMAX+9);
260 
261 enum PSF_SHOWHELP=1;
262 enum PSF_SELECTPASTE=2;
263 enum PSF_SELECTPASTELINK=4;
264 enum PSF_CHECKDISPLAYASICON=8;
265 enum PSF_DISABLEDISPLAYASICON=16;
266 enum PSF_HIDECHANGEICON=32;
267 enum PSF_STAYONCLIPBOARDCHANGE=64;
268 enum PSF_NOREFRESHDATAOBJECT=128;
269 
270 enum OLEUI_IOERR_SRCDATAOBJECTINVALID=OLEUI_ERR_STANDARDMAX;
271 enum OLEUI_IOERR_ARRPASTEENTRIESINVALID=(OLEUI_ERR_STANDARDMAX+1);
272 enum OLEUI_IOERR_ARRLINKTYPESINVALID=(OLEUI_ERR_STANDARDMAX+2);
273 enum OLEUI_PSERR_CLIPBOARDCHANGED=(OLEUI_ERR_STANDARDMAX+3);
274 enum OLEUI_PSERR_GETCLIPBOARDFAILED=(OLEUI_ERR_STANDARDMAX+4);
275 enum OLEUI_ELERR_LINKCNTRNULL=OLEUI_ERR_STANDARDMAX;
276 enum OLEUI_ELERR_LINKCNTRINVALID=(OLEUI_ERR_STANDARDMAX+1);
277 
278 enum ELF_SHOWHELP=1;
279 enum ELF_DISABLEUPDATENOW=2;
280 enum ELF_DISABLEOPENSOURCE=4;
281 enum ELF_DISABLECHANGESOURCE=8;
282 enum ELF_DISABLECANCELLINK=16;
283 
284 enum CIF_SHOWHELP=1;
285 enum CIF_SELECTCURRENT=2;
286 enum CIF_SELECTDEFAULT=4;
287 enum CIF_SELECTFROMFILE=8;
288 enum CIF_USEICONEXE=16;
289 
290 enum OLEUI_CIERR_MUSTHAVECLSID=OLEUI_ERR_STANDARDMAX;
291 enum OLEUI_CIERR_MUSTHAVECURRENTMETAFILE=OLEUI_ERR_STANDARDMAX+1;
292 enum OLEUI_CIERR_SZICONEXEINVALID=OLEUI_ERR_STANDARDMAX+2;
293 
294 enum CF_SHOWHELPBUTTON=1;
295 enum CF_SETCONVERTDEFAULT=2;
296 enum CF_SETACTIVATEDEFAULT=4;
297 enum CF_SELECTCONVERTTO=8;
298 enum CF_SELECTACTIVATEAS=16;
299 enum CF_DISABLEDISPLAYASICON=32;
300 enum CF_DISABLEACTIVATEAS=64;
301 enum CF_HIDECHANGEICON=128;
302 enum CF_CONVERTONLY=256;
303 
304 enum OLEUI_CTERR_CLASSIDINVALID = OLEUI_ERR_STANDARDMAX+1;
305 enum OLEUI_CTERR_DVASPECTINVALID = OLEUI_ERR_STANDARDMAX+2;
306 enum OLEUI_CTERR_CBFORMATINVALID = OLEUI_ERR_STANDARDMAX+3;
307 enum OLEUI_CTERR_HMETAPICTINVALID = OLEUI_ERR_STANDARDMAX+4;
308 enum OLEUI_CTERR_STRINGINVALID = OLEUI_ERR_STANDARDMAX+5;
309 
310 enum BZ_DISABLECANCELBUTTON = 1;
311 enum BZ_DISABLESWITCHTOBUTTON = 2;
312 enum BZ_DISABLERETRYBUTTON = 4;
313 enum BZ_NOTRESPONDINGDIALOG = 8;
314 
315 enum OLEUI_BZERR_HTASKINVALID = OLEUI_ERR_STANDARDMAX;
316 enum OLEUI_BZ_SWITCHTOSELECTED = OLEUI_ERR_STANDARDMAX+1;
317 enum OLEUI_BZ_RETRYSELECTED = OLEUI_ERR_STANDARDMAX+2;
318 enum OLEUI_BZ_CALLUNBLOCKED = OLEUI_ERR_STANDARDMAX+3;
319 
320 enum CSF_SHOWHELP = 1;
321 enum CSF_VALIDSOURCE = 2;
322 enum CSF_ONLYGETSOURCE = 4;
323 enum CSF_EXPLORER = 8;
324 
325 enum OLEUI_CSERR_LINKCNTRNULL = OLEUI_ERR_STANDARDMAX;
326 enum OLEUI_CSERR_LINKCNTRINVALID = OLEUI_ERR_STANDARDMAX+1;
327 enum OLEUI_CSERR_FROMNOTNULL = OLEUI_ERR_STANDARDMAX+2;
328 enum OLEUI_CSERR_TONOTNULL = OLEUI_ERR_STANDARDMAX+3;
329 enum OLEUI_CSERR_SOURCENULL = OLEUI_ERR_STANDARDMAX+4;
330 enum OLEUI_CSERR_SOURCEINVALID = OLEUI_ERR_STANDARDMAX+5;
331 enum OLEUI_CSERR_SOURCEPARSERROR = OLEUI_ERR_STANDARDMAX+6;
332 enum OLEUI_CSERR_SOURCEPARSEERROR = OLEUI_ERR_STANDARDMAX+7;
333 
334 enum VPF_SELECTRELATIVE=1;
335 enum VPF_DISABLERELATIVE=2;
336 enum VPF_DISABLESCALE=4;
337 
338 align(8):
339 extern (Windows) {
340     alias UINT function(HWND, UINT, WPARAM, LPARAM) LPFNOLEUIHOOK;
341 }
342 
343 struct OLEUIINSERTOBJECTW {
344     DWORD cbStruct;
345     DWORD dwFlags;
346     HWND hWndOwner;
347     LPCWSTR lpszCaption;
348     LPFNOLEUIHOOK lpfnHook;
349     LPARAM lCustData;
350     HINSTANCE hInstance;
351     LPCWSTR lpszTemplate;
352     HRSRC hResource;
353     CLSID clsid;
354     LPWSTR lpszFile;
355     UINT cchFile;
356     UINT cClsidExclude;
357     LPCLSID lpClsidExclude;
358     IID iid;
359     DWORD oleRender;
360     LPFORMATETC lpFormatEtc;
361     LPOLECLIENTSITE lpIOleClientSite;
362     LPSTORAGE lpIStorage;
363     PVOID *ppvObj;
364     SCODE sc;
365     HGLOBAL hMetaPict;
366 }
367 alias OLEUIINSERTOBJECTW* POLEUIINSERTOBJECTW, LPOLEUIINSERTOBJECTW;
368 
369 struct OLEUIINSERTOBJECTA {
370     DWORD cbStruct;
371     DWORD dwFlags;
372     HWND hWndOwner;
373     LPCSTR lpszCaption;
374     LPFNOLEUIHOOK lpfnHook;
375     LPARAM lCustData;
376     HINSTANCE hInstance;
377     LPCSTR lpszTemplate;
378     HRSRC hResource;
379     CLSID clsid;
380     LPSTR lpszFile;
381     UINT cchFile;
382     UINT cClsidExclude;
383     LPCLSID lpClsidExclude;
384     IID iid;
385     DWORD oleRender;
386     LPFORMATETC lpFormatEtc;
387     LPOLECLIENTSITE lpIOleClientSite;
388     LPSTORAGE lpIStorage;
389     PVOID *ppvObj;
390     SCODE sc;
391     HGLOBAL hMetaPict;
392 }
393 alias OLEUIINSERTOBJECTA* POLEUIINSERTOBJECTA, LPOLEUIINSERTOBJECTA;
394 
395 extern (Windows) nothrow @nogc {
396     UINT OleUIInsertObjectW(LPOLEUIINSERTOBJECTW);
397     UINT OleUIInsertObjectA(LPOLEUIINSERTOBJECTA);
398 }
399 
400 enum OLEUIPASTEFLAG {
401     OLEUIPASTE_PASTEONLY,
402     OLEUIPASTE_LINKTYPE1,
403     OLEUIPASTE_LINKTYPE2,
404     OLEUIPASTE_LINKTYPE3 = 4,
405     OLEUIPASTE_LINKTYPE4 = 8,
406     OLEUIPASTE_LINKTYPE5 = 16,
407     OLEUIPASTE_LINKTYPE6 = 32,
408     OLEUIPASTE_LINKTYPE7 = 64,
409     OLEUIPASTE_LINKTYPE8 = 128,
410     OLEUIPASTE_PASTE = 512,
411     OLEUIPASTE_LINKANYTYPE = 1024,
412     OLEUIPASTE_ENABLEICON = 2048
413 }
414 
415 struct OLEUIPASTEENTRYW {
416     FORMATETC fmtetc;
417     LPCWSTR lpstrFormatName;
418     LPCWSTR lpstrResultText;
419     DWORD dwFlags;
420     DWORD dwScratchSpace;
421 }
422 alias OLEUIPASTEENTRYW* POLEUIPASTEENTRYW, LPOLEUIPASTEENTRYW;
423 
424 struct OLEUIPASTEENTRYA {
425     FORMATETC fmtetc;
426     LPCSTR lpstrFormatName;
427     LPCSTR lpstrResultText;
428     DWORD dwFlags;
429     DWORD dwScratchSpace;
430 }
431 alias OLEUIPASTEENTRYA* POLEUIPASTEENTRYA, LPOLEUIPASTEENTRYA;
432 
433 struct OLEUIPASTESPECIALW {
434     DWORD cbStruct;
435     DWORD dwFlags;
436     HWND hWndOwner;
437     LPCWSTR lpszCaption;
438     LPFNOLEUIHOOK lpfnHook;
439     LPARAM lCustData;
440     HINSTANCE hInstance;
441     LPCWSTR lpszTemplate;
442     HRSRC hResource;
443     LPDATAOBJECT lpSrcDataObj;
444     LPOLEUIPASTEENTRYW arrPasteEntries;
445     int cPasteEntries;
446     UINT *arrLinkTypes;
447     int cLinkTypes;
448     UINT cClsidExclude;
449     LPCLSID lpClsidExclude;
450     int nSelectedIndex;
451     BOOL fLink;
452     HGLOBAL hMetaPict;
453     SIZEL sizel;
454 }
455 alias OLEUIPASTESPECIALW* POLEUIPASTESPECIALW, LPOLEUIPASTESPECIALW;
456 
457 struct OLEUIPASTESPECIALA {
458     DWORD cbStruct;
459     DWORD dwFlags;
460     HWND hWndOwner;
461     LPCSTR lpszCaption;
462     LPFNOLEUIHOOK lpfnHook;
463     LPARAM lCustData;
464     HINSTANCE hInstance;
465     LPCSTR lpszTemplate;
466     HRSRC hResource;
467     LPDATAOBJECT lpSrcDataObj;
468     LPOLEUIPASTEENTRYA arrPasteEntries;
469     int cPasteEntries;
470     UINT* arrLinkTypes;
471     int cLinkTypes;
472     UINT cClsidExclude;
473     LPCLSID lpClsidExclude;
474     int nSelectedIndex;
475     BOOL fLink;
476     HGLOBAL hMetaPict;
477     SIZEL sizel;
478 }
479 alias OLEUIPASTESPECIALA* POLEUIPASTESPECIALA, LPOLEUIPASTESPECIALA;
480 
481 interface IOleUILinkContainerW : IUnknown
482 {
483     HRESULT QueryInterface(REFIID, PVOID*);
484     ULONG AddRef();
485     ULONG Release();
486     DWORD GetNextLink(DWORD dwLink);
487     HRESULT SetLinkUpdateOptions(DWORD, DWORD);
488     HRESULT GetLinkUpdateOptions(DWORD, PDWORD);
489     HRESULT SetLinkSource(DWORD, LPWSTR, ULONG, PULONG, BOOL);
490     HRESULT GetLinkSource(DWORD, LPWSTR*, PULONG, LPWSTR*, LPWSTR*, BOOL*, BOOL*);
491     HRESULT OpenLinkSource(DWORD);
492     HRESULT UpdateLink(DWORD, BOOL, BOOL);
493     HRESULT CancelLink(DWORD);
494 }
495 alias LPOLEUILINKCONTAINERW = IOleUILinkContainerW;
496 
497 interface IOleUILinkContainerA : IUnknown
498 {
499     HRESULT QueryInterface(REFIID, PVOID*);
500     ULONG AddRef();
501     ULONG Release();
502     DWORD GetNextLink(DWORD);
503     HRESULT SetLinkUpdateOptions(DWORD, DWORD);
504     HRESULT GetLinkUpdateOptions(DWORD, PDWORD);
505     HRESULT SetLinkSource(DWORD, LPSTR, ULONG, PULONG, BOOL);
506     HRESULT GetLinkSource(DWORD, LPSTR*, PULONG, LPSTR*, LPSTR*, BOOL*, BOOL*);
507     HRESULT OpenLinkSource(DWORD);
508     HRESULT UpdateLink(DWORD, BOOL, BOOL);
509     HRESULT CancelLink(DWORD);
510 }
511 alias LPOLEUILINKCONTAINERA = IOleUILinkContainerA;
512 
513 struct OLEUIEDITLINKSW {
514     DWORD cbStruct;
515     DWORD dwFlags;
516     HWND hWndOwner;
517     LPCWSTR lpszCaption;
518     LPFNOLEUIHOOK lpfnHook;
519     LPARAM lCustData;
520     HINSTANCE hInstance;
521     LPCWSTR lpszTemplate;
522     HRSRC hResource;
523     LPOLEUILINKCONTAINERW lpOleUILinkContainer;
524 }
525 alias OLEUIEDITLINKSW* POLEUIEDITLINKSW, LPOLEUIEDITLINKSW;
526 
527 struct OLEUIEDITLINKSA {
528     DWORD cbStruct;
529     DWORD dwFlags;
530     HWND hWndOwner;
531     LPCSTR lpszCaption;
532     LPFNOLEUIHOOK lpfnHook;
533     LPARAM lCustData;
534     HINSTANCE hInstance;
535     LPCSTR lpszTemplate;
536     HRSRC hResource;
537     LPOLEUILINKCONTAINERA lpOleUILinkContainer;
538 }
539 alias OLEUIEDITLINKSA* POLEUIEDITLINKSA, LPOLEUIEDITLINKSA;
540 
541 struct OLEUICHANGEICONW {
542     DWORD cbStruct;
543     DWORD dwFlags;
544     HWND hWndOwner;
545     LPCWSTR lpszCaption;
546     LPFNOLEUIHOOK lpfnHook;
547     LPARAM lCustData;
548     HINSTANCE hInstance;
549     LPCWSTR lpszTemplate;
550     HRSRC hResource;
551     HGLOBAL hMetaPict;
552     CLSID clsid;
553     WCHAR[MAX_PATH] szIconExe = 0;
554     int cchIconExe;
555 }
556 alias OLEUICHANGEICONW* POLEUICHANGEICONW, LPOLEUICHANGEICONW;
557 
558 struct OLEUICHANGEICONA {
559     DWORD cbStruct;
560     DWORD dwFlags;
561     HWND hWndOwner;
562     LPCSTR lpszCaption;
563     LPFNOLEUIHOOK lpfnHook;
564     LPARAM lCustData;
565     HINSTANCE hInstance;
566     LPCSTR lpszTemplate;
567     HRSRC hResource;
568     HGLOBAL hMetaPict;
569     CLSID clsid;
570     CHAR[MAX_PATH] szIconExe = 0;
571     int cchIconExe;
572 }
573 alias OLEUICHANGEICONA* POLEUICHANGEICONA, LPOLEUICHANGEICONA;
574 
575 struct OLEUICONVERTW {
576     DWORD cbStruct;
577     DWORD dwFlags;
578     HWND hWndOwner;
579     LPCWSTR lpszCaption;
580     LPFNOLEUIHOOK lpfnHook;
581     LPARAM lCustData;
582     HINSTANCE hInstance;
583     LPCWSTR lpszTemplate;
584     HRSRC hResource;
585     CLSID clsid;
586     CLSID clsidConvertDefault;
587     CLSID clsidActivateDefault;
588     CLSID clsidNew;
589     DWORD dvAspect;
590     WORD wFormat;
591     BOOL fIsLinkedObject;
592     HGLOBAL hMetaPict;
593     LPWSTR lpszUserType;
594     BOOL fObjectsIconChanged;
595     LPWSTR lpszDefLabel;
596     UINT cClsidExclude;
597     LPCLSID lpClsidExclude;
598 }
599 alias OLEUICONVERTW* POLEUICONVERTW, LPOLEUICONVERTW;
600 
601 struct OLEUICONVERTA {
602     DWORD cbStruct;
603     DWORD dwFlags;
604     HWND hWndOwner;
605     LPCSTR lpszCaption;
606     LPFNOLEUIHOOK lpfnHook;
607     LPARAM lCustData;
608     HINSTANCE hInstance;
609     LPCSTR lpszTemplate;
610     HRSRC hResource;
611     CLSID clsid;
612     CLSID clsidConvertDefault;
613     CLSID clsidActivateDefault;
614     CLSID clsidNew;
615     DWORD dvAspect;
616     WORD wFormat;
617     BOOL fIsLinkedObject;
618     HGLOBAL hMetaPict;
619     LPSTR lpszUserType;
620     BOOL fObjectsIconChanged;
621     LPSTR lpszDefLabel;
622     UINT cClsidExclude;
623     LPCLSID lpClsidExclude;
624 }
625 alias OLEUICONVERTA* POLEUICONVERTA, LPOLEUICONVERTA;
626 
627 struct OLEUIBUSYW {
628     DWORD cbStruct;
629     DWORD dwFlags;
630     HWND hWndOwner;
631     LPCWSTR lpszCaption;
632     LPFNOLEUIHOOK lpfnHook;
633     LPARAM lCustData;
634     HINSTANCE hInstance;
635     LPCWSTR lpszTemplate;
636     HRSRC hResource;
637     HTASK hTask;
638     HWND *lphWndDialog;
639 }
640 alias OLEUIBUSYW* POLEUIBUSYW, LPOLEUIBUSYW;
641 
642 struct OLEUIBUSYA {
643     DWORD cbStruct;
644     DWORD dwFlags;
645     HWND hWndOwner;
646     LPCSTR lpszCaption;
647     LPFNOLEUIHOOK lpfnHook;
648     LPARAM lCustData;
649     HINSTANCE hInstance;
650     LPCSTR lpszTemplate;
651     HRSRC hResource;
652     HTASK hTask;
653     HWND *lphWndDialog;
654 }
655 alias OLEUIBUSYA* POLEUIBUSYA, LPOLEUIBUSYA;
656 
657 struct OLEUICHANGESOURCEW {
658     DWORD cbStruct;
659     DWORD dwFlags;
660     HWND hWndOwner;
661     LPCWSTR lpszCaption;
662     LPFNOLEUIHOOK lpfnHook;
663     LPARAM lCustData;
664     HINSTANCE hInstance;
665     LPCWSTR lpszTemplate;
666     HRSRC hResource;
667     OPENFILENAMEW* lpOFN;
668     DWORD[4] dwReserved1;
669     LPOLEUILINKCONTAINERW lpOleUILinkContainer;
670     DWORD dwLink;
671     LPWSTR lpszDisplayName;
672     ULONG nFileLength;
673     LPWSTR lpszFrom;
674     LPWSTR lpszTo;
675 }
676 alias OLEUICHANGESOURCEW* POLEUICHANGESOURCEW, LPOLEUICHANGESOURCEW;
677 
678 struct OLEUICHANGESOURCEA {
679     DWORD cbStruct;
680     DWORD dwFlags;
681     HWND hWndOwner;
682     LPCSTR lpszCaption;
683     LPFNOLEUIHOOK lpfnHook;
684     LPARAM lCustData;
685     HINSTANCE hInstance;
686     LPCSTR lpszTemplate;
687     HRSRC hResource;
688     OPENFILENAMEA *lpOFN;
689     DWORD[4] dwReserved1;
690     LPOLEUILINKCONTAINERA lpOleUILinkContainer;
691     DWORD dwLink;
692     LPSTR lpszDisplayName;
693     ULONG nFileLength;
694     LPSTR lpszFrom;
695     LPSTR lpszTo;
696 }
697 alias OLEUICHANGESOURCEA* POLEUICHANGESOURCEA, LPOLEUICHANGESOURCEA;
698 
699 interface IOleUIObjInfoW : IUnknown
700 {
701     HRESULT QueryInterface(REFIID, PVOID*);
702     ULONG AddRef();
703     ULONG Release();
704     HRESULT GetObjectInfo(DWORD, PDWORD, LPWSTR*, LPWSTR*, LPWSTR*, LPWSTR*);
705     HRESULT GetConvertInfo(DWORD, CLSID*, PWORD, CLSID*, LPCLSID*, UINT*);
706     HRESULT ConvertObject(DWORD, REFCLSID);
707     HRESULT GetViewInfo(DWORD, HGLOBAL*, PDWORD, int*);
708     HRESULT SetViewInfo(DWORD, HGLOBAL, DWORD, int, BOOL);
709 }
710 alias LPOLEUIOBJINFOW = IOleUIObjInfoW;
711 
712 interface IOleUIObjInfoA : IUnknown
713 {
714     HRESULT QueryInterface(REFIID, PVOID*);
715     ULONG AddRef();
716     ULONG Release();
717     HRESULT GetObjectInfo(DWORD, PDWORD, LPSTR*, LPSTR*, LPSTR*, LPSTR*);
718     HRESULT GetConvertInfo(DWORD, CLSID*, PWORD, CLSID*, LPCLSID*, UINT*);
719     HRESULT ConvertObject(DWORD, REFCLSID);
720     HRESULT GetViewInfo(DWORD, HGLOBAL*, PDWORD, int*);
721     HRESULT SetViewInfo(DWORD, HGLOBAL, DWORD, int, BOOL);
722 }
723 alias LPOLEUIOBJINFOA = IOleUIObjInfoA;
724 
725 interface IOleUILinkInfoW : IOleUILinkContainerW
726 {
727     HRESULT QueryInterface(REFIID, PVOID*);
728     ULONG AddRef();
729     ULONG Release();
730     DWORD GetNextLink(DWORD);
731     HRESULT SetLinkUpdateOptions(DWORD, DWORD);
732     HRESULT GetLinkUpdateOptions(DWORD, DWORD*);
733     HRESULT SetLinkSource(DWORD, LPWSTR, ULONG, PULONG, BOOL);
734     HRESULT GetLinkSource(DWORD, LPWSTR*, PULONG, LPWSTR*, LPWSTR*, BOOL*, BOOL*);
735     HRESULT OpenLinkSource(DWORD);
736     HRESULT UpdateLink(DWORD, BOOL, BOOL);
737     HRESULT CancelLink(DWORD);
738     HRESULT GetLastUpdate(DWORD, FILETIME*);
739 }
740 alias LPOLEUILINKINFOW = IOleUILinkInfoW;
741 
742 interface IOleUILinkInfoA : IOleUILinkContainerA
743 {
744     HRESULT QueryInterface(REFIID, PVOID*);
745     ULONG AddRef();
746     ULONG Release();
747     DWORD GetNextLink(DWORD);
748     HRESULT SetLinkUpdateOptions(DWORD, DWORD);
749     HRESULT GetLinkUpdateOptions(DWORD, DWORD*);
750     HRESULT SetLinkSource(DWORD, LPSTR, ULONG, PULONG, BOOL);
751     HRESULT GetLinkSource(DWORD, LPSTR*, PULONG, LPSTR*, LPSTR*, BOOL*, BOOL*);
752     HRESULT OpenLinkSource(DWORD);
753     HRESULT UpdateLink(DWORD, BOOL, BOOL);
754     HRESULT CancelLink(DWORD);
755     HRESULT GetLastUpdate(DWORD, FILETIME*);
756 }
757 alias LPOLEUILINKINFOA = IOleUILinkInfoA;
758 
759 struct OLEUIGNRLPROPSW {
760     DWORD cbStruct;
761     DWORD dwFlags;
762     DWORD[2] dwReserved1;
763     LPFNOLEUIHOOK lpfnHook;
764     LPARAM lCustData;
765     DWORD[3] dwReserved2;
766     OLEUIOBJECTPROPSW* lpOP;
767 }
768 alias OLEUIGNRLPROPSW* POLEUIGNRLPROPSW, LPOLEUIGNRLPROPSW;
769 
770 struct OLEUIGNRLPROPSA {
771     DWORD cbStruct;
772     DWORD dwFlags;
773     DWORD[2] dwReserved1;
774     LPFNOLEUIHOOK lpfnHook;
775     LPARAM lCustData;
776     DWORD[3] dwReserved2;
777     OLEUIOBJECTPROPSA* lpOP;
778 }
779 alias OLEUIGNRLPROPSA* POLEUIGNRLPROPSA, LPOLEUIGNRLPROPSA;
780 
781 struct OLEUIVIEWPROPSW {
782     DWORD cbStruct;
783     DWORD dwFlags;
784     DWORD[2] dwReserved1;
785     LPFNOLEUIHOOK lpfnHook;
786     LPARAM lCustData;
787     DWORD[3] dwReserved2;
788     OLEUIOBJECTPROPSW* lpOP;
789     int nScaleMin;
790     int nScaleMax;
791 }
792 alias OLEUIVIEWPROPSW* POLEUIVIEWPROPSW, LPOLEUIVIEWPROPSW;
793 
794 struct OLEUIVIEWPROPSA {
795     DWORD cbStruct;
796     DWORD dwFlags;
797     DWORD[2] dwReserved1;
798     LPFNOLEUIHOOK lpfnHook;
799     LPARAM lCustData;
800     DWORD[3] dwReserved2;
801     OLEUIOBJECTPROPSA *lpOP;
802     int nScaleMin;
803     int nScaleMax;
804 }
805 alias OLEUIVIEWPROPSA* POLEUIVIEWPROPSA, LPOLEUIVIEWPROPSA;
806 
807 struct OLEUILINKPROPSW {
808     DWORD cbStruct;
809     DWORD dwFlags;
810     DWORD[2] dwReserved1;
811     LPFNOLEUIHOOK lpfnHook;
812     LPARAM lCustData;
813     DWORD[3] dwReserved2;
814     OLEUIOBJECTPROPSW *lpOP;
815 }
816 alias OLEUILINKPROPSW* POLEUILINKPROPSW, LPOLEUILINKPROPSW;
817 
818 struct OLEUILINKPROPSA {
819     DWORD cbStruct;
820     DWORD dwFlags;
821     DWORD[2] dwReserved1;
822     LPFNOLEUIHOOK lpfnHook;
823     LPARAM lCustData;
824     DWORD[3] dwReserved2;
825     OLEUIOBJECTPROPSA* lpOP;
826 }
827 alias OLEUILINKPROPSA*  POLEUILINKPROPSA, LPOLEUILINKPROPSA;
828 
829 struct OLEUIOBJECTPROPSW {
830     DWORD cbStruct;
831     DWORD dwFlags;
832     LPPROPSHEETHEADERW lpPS;
833     DWORD dwObject;
834     LPOLEUIOBJINFOW lpObjInfo;
835     DWORD dwLink;
836     LPOLEUILINKINFOW lpLinkInfo;
837     LPOLEUIGNRLPROPSW lpGP;
838     LPOLEUIVIEWPROPSW lpVP;
839     LPOLEUILINKPROPSW lpLP;
840 }
841 alias OLEUIOBJECTPROPSW* POLEUIOBJECTPROPSW, LPOLEUIOBJECTPROPSW;
842 
843 struct OLEUIOBJECTPROPSA {
844     DWORD cbStruct;
845     DWORD dwFlags;
846     LPPROPSHEETHEADERA lpPS;
847     DWORD dwObject;
848     LPOLEUIOBJINFOA lpObjInfo;
849     DWORD dwLink;
850     LPOLEUILINKINFOA lpLinkInfo;
851     LPOLEUIGNRLPROPSA lpGP;
852     LPOLEUIVIEWPROPSA lpVP;
853     LPOLEUILINKPROPSA lpLP;
854 }
855 alias OLEUIOBJECTPROPSA* POLEUIOBJECTPROPSA, LPOLEUIOBJECTPROPSA;
856 
857 extern (Windows) nothrow @nogc {
858     BOOL OleUIAddVerbMenuW(LPOLEOBJECT, LPCWSTR, HMENU, UINT, UINT, UINT, BOOL, UINT, HMENU*);
859     BOOL OleUIAddVerbMenuA(LPOLEOBJECT, LPCSTR, HMENU, UINT, UINT, UINT, BOOL, UINT, HMENU*);
860     UINT OleUIBusyW(LPOLEUIBUSYW);
861     UINT OleUIBusyA(LPOLEUIBUSYA);
862     BOOL OleUICanConvertOrActivateAs(REFCLSID, BOOL, WORD);
863     UINT OleUIChangeIconW(LPOLEUICHANGEICONW);
864     UINT OleUIChangeIconA(LPOLEUICHANGEICONA);
865     UINT OleUIChangeSourceW(LPOLEUICHANGESOURCEW);
866     UINT OleUIChangeSourceA(LPOLEUICHANGESOURCEA);
867     UINT OleUIConvertW(LPOLEUICONVERTW);
868     UINT OleUIConvertA(LPOLEUICONVERTA);
869     UINT OleUIEditLinksW(LPOLEUIEDITLINKSW);
870     UINT OleUIEditLinksA(LPOLEUIEDITLINKSA);
871     UINT OleUIObjectPropertiesW(LPOLEUIOBJECTPROPSW);
872     UINT OleUIObjectPropertiesA(LPOLEUIOBJECTPROPSA);
873     UINT OleUIPasteSpecialW(LPOLEUIPASTESPECIALW);
874     UINT OleUIPasteSpecialA(LPOLEUIPASTESPECIALA);
875     BOOL OleUIUpdateLinksW(LPOLEUILINKCONTAINERW, HWND, LPWSTR, int);
876     BOOL OleUIUpdateLinksA(LPOLEUILINKCONTAINERA, HWND, LPSTR, int);
877 }
878 
879 extern (C) {
880     int OleUIPromptUserW(int, HWND, ...);
881     int OleUIPromptUserA(int, HWND, ...);
882 }
883 
884 version (Unicode) {
885     alias IDD_SERVERNOTREG = IDD_SERVERNOTREGW;
886     alias IDD_LINKTYPECHANGED = IDD_LINKTYPECHANGEDW;
887     alias OleUIUpdateLinks = OleUIUpdateLinksW;
888     alias OleUIAddVerbMenu = OleUIAddVerbMenuW;
889     alias OLEUIOBJECTPROPS = OLEUIOBJECTPROPSW;
890     alias POLEUIOBJECTPROPS = POLEUIOBJECTPROPSW;
891     alias LPOLEUIOBJECTPROPS = LPOLEUIOBJECTPROPSW;
892     alias OleUIObjectProperties = OleUIObjectPropertiesW;
893     alias OLEUIINSERTOBJECT = OLEUIINSERTOBJECTW;
894     alias POLEUIINSERTOBJECT = POLEUIINSERTOBJECTW;
895     alias LPOLEUIINSERTOBJECT = LPOLEUIINSERTOBJECTW;
896     alias OleUIInsertObject = OleUIInsertObjectW;
897     alias OleUIPromptUser = OleUIPromptUserW;
898     alias OLEUIPASTEENTRY = OLEUIPASTEENTRYW;
899     alias POLEUIPASTEENTRY = POLEUIPASTEENTRYW;
900     alias LPOLEUIPASTEENTRY = LPOLEUIPASTEENTRYW;
901     alias OLEUIPASTESPECIAL = OLEUIPASTESPECIALW;
902     alias POLEUIPASTESPECIAL = POLEUIPASTESPECIALW;
903     alias LPOLEUIPASTESPECIAL = LPOLEUIPASTESPECIALW;
904     alias OleUIPasteSpecial = OleUIPasteSpecialW;
905     alias IOleUILinkContainer = IOleUILinkContainerW;
906     alias LPOLEUILINKCONTAINER = LPOLEUILINKCONTAINERW;
907     alias OLEUIEDITLINKS = OLEUIEDITLINKSW;
908     alias POLEUIEDITLINKS = POLEUIEDITLINKSW;
909     alias LPOLEUIEDITLINKS = LPOLEUIEDITLINKSW;
910     alias OleUIEditLinks = OleUIEditLinksW;
911     alias OLEUICHANGEICON = OLEUICHANGEICONW;
912     alias POLEUICHANGEICON = POLEUICHANGEICONW;
913     alias LPOLEUICHANGEICON = LPOLEUICHANGEICONW;
914     alias OleUIChangeIcon = OleUIChangeIconW;
915     alias OLEUICONVERT = OLEUICONVERTW;
916     alias POLEUICONVERT = POLEUICONVERTW;
917     alias LPOLEUICONVERT = LPOLEUICONVERTW;
918     alias OleUIConvert = OleUIConvertW;
919     alias OLEUIBUSY = OLEUIBUSYW;
920     alias POLEUIBUSY = POLEUIBUSYW;
921     alias LPOLEUIBUSY = LPOLEUIBUSYW;
922     alias OleUIBusy = OleUIBusyW;
923     alias OLEUICHANGESOURCE = OLEUICHANGESOURCEW;
924     alias POLEUICHANGESOURCE = POLEUICHANGESOURCEW;
925     alias LPOLEUICHANGESOURCE = LPOLEUICHANGESOURCEW;
926     alias OleUIChangeSource = OleUIChangeSourceW;
927     alias IOleUIObjInfo = IOleUIObjInfoW;
928     alias LPOLEUIOBJINFO = LPOLEUIOBJINFOW;
929     alias IOleUILinkInfo = IOleUILinkInfoW;
930     //alias IOleUILinkInfoVtbl = IOleUILinkInfoWVtbl;
931     alias LPOLEUILINKINFO = LPOLEUILINKINFOW;
932     alias OLEUIGNRLPROPS = OLEUIGNRLPROPSW;
933     alias POLEUIGNRLPROPS = POLEUIGNRLPROPSW;
934     alias LPOLEUIGNRLPROPS = LPOLEUIGNRLPROPSW;
935     alias OLEUIVIEWPROPS = OLEUIVIEWPROPSW;
936     alias POLEUIVIEWPROPS = POLEUIVIEWPROPSW;
937     alias LPOLEUIVIEWPROPS = LPOLEUIVIEWPROPSW;
938     alias OLEUILINKPROPS = OLEUILINKPROPSW;
939     alias POLEUILINKPROPS = POLEUILINKPROPSW;
940     alias LPOLEUILINKPROPS = LPOLEUILINKPROPSW;
941 } else {
942     alias IDD_SERVERNOTREG = IDD_SERVERNOTREGA;
943     alias IDD_LINKTYPECHANGED = IDD_LINKTYPECHANGEDA;
944     alias OleUIUpdateLinks = OleUIUpdateLinksA;
945     alias OleUIAddVerbMenu = OleUIAddVerbMenuA;
946     alias OLEUIOBJECTPROPS = OLEUIOBJECTPROPSA;
947     alias POLEUIOBJECTPROPS = POLEUIOBJECTPROPSA;
948     alias LPOLEUIOBJECTPROPS = LPOLEUIOBJECTPROPSA;
949     alias OleUIObjectProperties = OleUIObjectPropertiesA;
950     alias OLEUIINSERTOBJECT = OLEUIINSERTOBJECTA;
951     alias POLEUIINSERTOBJECT = POLEUIINSERTOBJECTA;
952     alias LPOLEUIINSERTOBJECT = LPOLEUIINSERTOBJECTA;
953     alias OleUIInsertObject = OleUIInsertObjectA;
954     alias OleUIPromptUser = OleUIPromptUserA;
955     alias OLEUIPASTEENTRY = OLEUIPASTEENTRYA;
956     alias POLEUIPASTEENTRY = POLEUIPASTEENTRYA;
957     alias LPOLEUIPASTEENTRY = LPOLEUIPASTEENTRYA;
958     alias OLEUIPASTESPECIAL = OLEUIPASTESPECIALA;
959     alias POLEUIPASTESPECIAL = POLEUIPASTESPECIALA;
960     alias LPOLEUIPASTESPECIAL = LPOLEUIPASTESPECIALA;
961     alias OleUIPasteSpecial = OleUIPasteSpecialA;
962     alias IOleUILinkContainer = IOleUILinkContainerA;
963     alias LPOLEUILINKCONTAINER = LPOLEUILINKCONTAINERA;
964     alias OLEUIEDITLINKS = OLEUIEDITLINKSA;
965     alias POLEUIEDITLINKS = POLEUIEDITLINKSA;
966     alias LPOLEUIEDITLINKS = LPOLEUIEDITLINKSA;
967     alias OleUIEditLinks = OleUIEditLinksA;
968     alias OLEUICHANGEICON = OLEUICHANGEICONA;
969     alias POLEUICHANGEICON = POLEUICHANGEICONA;
970     alias LPOLEUICHANGEICON = LPOLEUICHANGEICONA;
971     alias OleUIChangeIcon = OleUIChangeIconA;
972     alias OLEUICONVERT = OLEUICONVERTA;
973     alias POLEUICONVERT = POLEUICONVERTA;
974     alias LPOLEUICONVERT = LPOLEUICONVERTA;
975     alias OleUIConvert = OleUIConvertA;
976     alias OLEUIBUSY = OLEUIBUSYA;
977     alias POLEUIBUSY = POLEUIBUSYA;
978     alias LPOLEUIBUSY = LPOLEUIBUSYA;
979     alias OleUIBusy = OleUIBusyA;
980     alias OLEUICHANGESOURCE = OLEUICHANGESOURCEA;
981     alias POLEUICHANGESOURCE = POLEUICHANGESOURCEA;
982     alias LPOLEUICHANGESOURCE = LPOLEUICHANGESOURCEA;
983     alias OleUIChangeSource = OleUIChangeSourceA;
984     alias IOleUIObjInfo = IOleUIObjInfoA;
985     alias LPOLEUIOBJINFO = LPOLEUIOBJINFOA;
986     alias IOleUILinkInfo = IOleUILinkInfoA;
987     //alias IOleUILinkInfoVtbl = IOleUILinkInfoAVtbl;
988     alias LPOLEUILINKINFO = LPOLEUILINKINFOA;
989     alias OLEUIGNRLPROPS = OLEUIGNRLPROPSA;
990     alias POLEUIGNRLPROPS = POLEUIGNRLPROPSA;
991     alias LPOLEUIGNRLPROPS = LPOLEUIGNRLPROPSA;
992     alias OLEUIVIEWPROPS = OLEUIVIEWPROPSA;
993     alias POLEUIVIEWPROPS = POLEUIVIEWPROPSA;
994     alias LPOLEUIVIEWPROPS = LPOLEUIVIEWPROPSA;
995     alias OLEUILINKPROPS = OLEUILINKPROPSA;
996     alias POLEUILINKPROPS = POLEUILINKPROPSA;
997     alias LPOLEUILINKPROPS = LPOLEUILINKPROPSA;
998 }