Differences From Artifact [2b588d001c37b323]:
- File
src/win32/oaidl.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
To Artifact [3b6a16e1b16e8ad3]:
- File
src/win32/oaidl.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
89 struct SAFEARR_BSTR { 89 struct SAFEARR_BSTR {
90 ULONG Size; 90 ULONG Size;
91 wireBSTR* aBstr; 91 wireBSTR* aBstr;
92 } 92 }
93 93
94 struct SAFEARR_UNKNOWN { 94 struct SAFEARR_UNKNOWN {
95 ULONG Size; 95 ULONG Size;
96 IUnknown** apUnknown; | 96 IUnknown* apUnknown;
97 } 97 }
98 98
99 struct SAFEARR_DISPATCH { 99 struct SAFEARR_DISPATCH {
100 ULONG Size; 100 ULONG Size;
101 LPDISPATCH* apDispatch; 101 LPDISPATCH* apDispatch;
102 } 102 }
103 103
................................................................................................................................................................................
129 struct SAFEARR_BRECORD { 129 struct SAFEARR_BRECORD {
130 ULONG Size; 130 ULONG Size;
131 wireBRECORD* aRecord; 131 wireBRECORD* aRecord;
132 } 132 }
133 133
134 struct SAFEARR_HAVEIID { 134 struct SAFEARR_HAVEIID {
135 ULONG Size; 135 ULONG Size;
136 IUnknown** apUnknown; | 136 IUnknown* apUnknown;
137 IID iid; 137 IID iid;
138 } 138 }
139 139
140 struct SAFEARRAYUNION { 140 struct SAFEARRAYUNION {
141 ULONG sfType; 141 ULONG sfType;
142 union _u { 142 union _u {
143 SAFEARR_BSTR BstrStr; 143 SAFEARR_BSTR BstrStr;
................................................................................................................................................................................
156 156
157 struct _wireSAFEARRAY { 157 struct _wireSAFEARRAY {
158 USHORT cDims; 158 USHORT cDims;
159 USHORT fFeatures; 159 USHORT fFeatures;
160 ULONG cbElements; 160 ULONG cbElements;
161 ULONG cLocks; 161 ULONG cLocks;
162 SAFEARRAYUNION uArrayStructs; 162 SAFEARRAYUNION uArrayStructs;
163 SAFEARRAYBOUND rgsabound[1]; | 163 SAFEARRAYBOUND[1] rgsabound;
164 } 164 }
165 alias _wireSAFEARRAY* wireSAFEARRAY; 165 alias _wireSAFEARRAY* wireSAFEARRAY;
166 166
167 alias wireSAFEARRAY* wirePSAFEARRAY; 167 alias wireSAFEARRAY* wirePSAFEARRAY;
168 168
169 struct SAFEARRAY { 169 struct SAFEARRAY {
170 USHORT cDims; 170 USHORT cDims;
171 USHORT fFeatures; 171 USHORT fFeatures;
172 ULONG cbElements; 172 ULONG cbElements;
173 ULONG cLocks; 173 ULONG cLocks;
174 PVOID pvData; 174 PVOID pvData;
175 SAFEARRAYBOUND rgsabound[1]; | 175 SAFEARRAYBOUND[1] rgsabound;
176 } 176 }
177 alias SAFEARRAY* LPSAFEARRAY; 177 alias SAFEARRAY* LPSAFEARRAY;
178 178
179 struct VARIANT { 179 struct VARIANT {
180 union { 180 union {
181 struct { 181 struct {
182 VARTYPE vt; 182 VARTYPE vt;
................................................................................................................................................................................
255 FLOAT fltVal; 255 FLOAT fltVal;
256 DOUBLE dblVal; 256 DOUBLE dblVal;
257 VARIANT_BOOL boolVal; 257 VARIANT_BOOL boolVal;
258 SCODE scode; 258 SCODE scode;
259 CY cyVal; 259 CY cyVal;
260 DATE date; 260 DATE date;
261 wireBSTR bstrVal; 261 wireBSTR bstrVal;
262 IUnknown* punkVal; | 262 IUnknown punkVal;
263 LPDISPATCH pdispVal; 263 LPDISPATCH pdispVal;
264 wirePSAFEARRAY parray; 264 wirePSAFEARRAY parray;
265 wireBRECORD brecVal; 265 wireBRECORD brecVal;
266 BYTE* pbVal; 266 BYTE* pbVal;
267 SHORT* piVal; 267 SHORT* piVal;
268 LONG* plVal; 268 LONG* plVal;
269 FLOAT* pfltVal; 269 FLOAT* pfltVal;
270 DOUBLE* pdblVal; 270 DOUBLE* pdblVal;
271 VARIANT_BOOL* pboolVal; 271 VARIANT_BOOL* pboolVal;
272 SCODE* pscode; 272 SCODE* pscode;
273 CY* pcyVal; 273 CY* pcyVal;
274 DATE* pdate; 274 DATE* pdate;
275 wireBSTR* pbstrVal; 275 wireBSTR* pbstrVal;
276 IUnknown** ppunkVal; | 276 IUnknown* ppunkVal;
277 LPDISPATCH* ppdispVal; 277 LPDISPATCH* ppdispVal;
278 wirePSAFEARRAY* pparray; 278 wirePSAFEARRAY* pparray;
279 wireVARIANT* pvarVal; 279 wireVARIANT* pvarVal;
280 CHAR cVal; 280 CHAR cVal;
281 USHORT uiVal; 281 USHORT uiVal;
282 ULONG ulVal; 282 ULONG ulVal;
283 ULONGLONG ullVal; 283 ULONGLONG ullVal;
................................................................................................................................................................................
311 } 311 }
312 VARTYPE vt; 312 VARTYPE vt;
313 } 313 }
314 314
315 struct ARRAYDESC { 315 struct ARRAYDESC {
316 TYPEDESC tdescElem; 316 TYPEDESC tdescElem;
317 USHORT cDims; 317 USHORT cDims;
318 SAFEARRAYBOUND rgbounds[1]; | 318 SAFEARRAYBOUND[1] rgbounds;
319 } 319 }
320 320
321 struct PARAMDESCEX { 321 struct PARAMDESCEX {
322 ULONG cBytes; 322 ULONG cBytes;
323 VARIANTARG varDefaultValue; 323 VARIANTARG varDefaultValue;
324 } 324 }
325 alias PARAMDESCEX* LPPARAMDESCEX; 325 alias PARAMDESCEX* LPPARAMDESCEX;
................................................................................................................................................................................
497 VARFLAG_FUIDEFAULT = 512, 497 VARFLAG_FUIDEFAULT = 512,
498 VARFLAG_FNONBROWSABLE = 1024, 498 VARFLAG_FNONBROWSABLE = 1024,
499 VARFLAG_FREPLACEABLE = 2048, 499 VARFLAG_FREPLACEABLE = 2048,
500 VARFLAG_FIMMEDIATEBIND = 4096 500 VARFLAG_FIMMEDIATEBIND = 4096
501 } 501 }
502 502
503 struct CLEANLOCALSTORAGE { 503 struct CLEANLOCALSTORAGE {
504 IUnknown* pInterface; | 504 IUnknown pInterface;
505 PVOID pStorage; 505 PVOID pStorage;
506 DWORD flags; 506 DWORD flags;
507 } 507 }
508 508
509 struct CUSTDATAITEM { 509 struct CUSTDATAITEM {
510 GUID guid; 510 GUID guid;
511 VARIANTARG varValue; 511 VARIANTARG varValue;
................................................................................................................................................................................
542 } 542 }
543 alias IDispatch LPDISPATCH; 543 alias IDispatch LPDISPATCH;
544 544
545 interface IEnumVARIANT : IUnknown { 545 interface IEnumVARIANT : IUnknown {
546 HRESULT Next(ULONG, VARIANT*, ULONG*); 546 HRESULT Next(ULONG, VARIANT*, ULONG*);
547 HRESULT Skip(ULONG); 547 HRESULT Skip(ULONG);
548 HRESULT Reset(); 548 HRESULT Reset();
549 HRESULT Clone(IEnumVARIANT**); | 549 HRESULT Clone(IEnumVARIANT*);
550 } 550 }
551 alias IEnumVARIANT LPENUMVARIANT; 551 alias IEnumVARIANT LPENUMVARIANT;
552 552
553 interface ITypeComp : IUnknown { 553 interface ITypeComp : IUnknown {
554 HRESULT Bind(LPOLESTR, ULONG, WORD, LPTYPEINFO*, DESCKIND*, LPBINDPTR); 554 HRESULT Bind(LPOLESTR, ULONG, WORD, LPTYPEINFO*, DESCKIND*, LPBINDPTR);
555 HRESULT BindType(LPOLESTR, ULONG, LPTYPEINFO*, LPTYPECOMP*); 555 HRESULT BindType(LPOLESTR, ULONG, LPTYPEINFO*, LPTYPECOMP*);
556 } 556 }
................................................................................................................................................................................
597 HRESULT GetAllVarCustData(UINT, CUSTDATA*); 597 HRESULT GetAllVarCustData(UINT, CUSTDATA*);
598 HRESULT GetAllImplTypeCustData(UINT, CUSTDATA*); 598 HRESULT GetAllImplTypeCustData(UINT, CUSTDATA*);
599 } 599 }
600 alias ITypeInfo2 LPTYPEINFO2; 600 alias ITypeInfo2 LPTYPEINFO2;
601 601
602 interface ITypeLib : IUnknown { 602 interface ITypeLib : IUnknown {
603 UINT GetTypeInfoCount(); 603 UINT GetTypeInfoCount();
604 HRESULT GetTypeInfo(UINT, ITypeInfo**); | 604 HRESULT GetTypeInfo(UINT, ITypeInfo*);
605 HRESULT GetTypeInfoType(UINT, TYPEKIND*); 605 HRESULT GetTypeInfoType(UINT, TYPEKIND*);
606 HRESULT GetTypeInfoOfGuid(REFGUID, ITypeInfo**); | 606 HRESULT GetTypeInfoOfGuid(REFGUID, ITypeInfo*);
607 HRESULT GetLibAttr(TLIBATTR**); 607 HRESULT GetLibAttr(TLIBATTR**);
608 HRESULT GetTypeComp(ITypeComp*); | 608 HRESULT GetTypeComp(ITypeComp);
609 HRESULT GetDocumentation(INT, BSTR*, BSTR*, DWORD*, BSTR*); 609 HRESULT GetDocumentation(INT, BSTR*, BSTR*, DWORD*, BSTR*);
610 HRESULT IsName(LPOLESTR, ULONG, BOOL*); 610 HRESULT IsName(LPOLESTR, ULONG, BOOL*);
611 HRESULT FindName(LPOLESTR, ULONG, ITypeInfo**, MEMBERID*, USHORT*); | 611 HRESULT FindName(LPOLESTR, ULONG, ITypeInfo*, MEMBERID*, USHORT*);
612 void ReleaseTLibAttr(TLIBATTR*); 612 void ReleaseTLibAttr(TLIBATTR*);
613 } 613 }
614 alias ITypeLib LPTYPELIB; 614 alias ITypeLib LPTYPELIB;
615 615
616 interface ITypeLib2 : ITypeLib { 616 interface ITypeLib2 : ITypeLib {
617 HRESULT GetCustData(REFGUID, VARIANT*); 617 HRESULT GetCustData(REFGUID, VARIANT*);
618 HRESULT GetLibStatistics(ULONG*, ULONG*); 618 HRESULT GetLibStatistics(ULONG*, ULONG*);
................................................................................................................................................................................
633 interface ICreateErrorInfo : IUnknown { 633 interface ICreateErrorInfo : IUnknown {
634 HRESULT SetGUID(REFGUID); 634 HRESULT SetGUID(REFGUID);
635 HRESULT SetSource(LPOLESTR); 635 HRESULT SetSource(LPOLESTR);
636 HRESULT SetDescription(LPOLESTR); 636 HRESULT SetDescription(LPOLESTR);
637 HRESULT SetHelpFile(LPOLESTR); 637 HRESULT SetHelpFile(LPOLESTR);
638 HRESULT SetHelpContext(DWORD); 638 HRESULT SetHelpContext(DWORD);
639 } 639 }
640 alias ICreateErrorInfo* LPCREATEERRORINFO; | 640 alias ICreateErrorInfo LPCREATEERRORINFO;
641 641
642 interface ISupportErrorInfo : IUnknown { 642 interface ISupportErrorInfo : IUnknown {
643 HRESULT InterfaceSupportsErrorInfo(REFIID); 643 HRESULT InterfaceSupportsErrorInfo(REFIID);
644 } 644 }
645 alias ISupportErrorInfo LPSUPPORTERRORINFO; 645 alias ISupportErrorInfo LPSUPPORTERRORINFO;
646 646
647 interface IRecordInfo : IUnknown { 647 interface IRecordInfo : IUnknown {
648 HRESULT RecordInit(PVOID); 648 HRESULT RecordInit(PVOID);
649 HRESULT RecordClear(PVOID); 649 HRESULT RecordClear(PVOID);
650 HRESULT RecordCopy(PVOID, PVOID); 650 HRESULT RecordCopy(PVOID, PVOID);
651 HRESULT GetGuid(GUID*); 651 HRESULT GetGuid(GUID*);
652 HRESULT GetName(BSTR*); 652 HRESULT GetName(BSTR*);
653 HRESULT GetSize(ULONG*); 653 HRESULT GetSize(ULONG*);
654 HRESULT GetTypeInfo(ITypeInfo**); | 654 HRESULT GetTypeInfo(ITypeInfo*);
655 HRESULT GetField(PVOID, LPCOLESTR, VARIANT*); 655 HRESULT GetField(PVOID, LPCOLESTR, VARIANT*);
656 HRESULT GetFieldNoCopy(PVOID, LPCOLESTR, VARIANT*, PVOID*); 656 HRESULT GetFieldNoCopy(PVOID, LPCOLESTR, VARIANT*, PVOID*);
657 HRESULT PutField (ULONG, PVOID, LPCOLESTR, VARIANT*); 657 HRESULT PutField (ULONG, PVOID, LPCOLESTR, VARIANT*);
658 HRESULT PutFieldNoCopy(ULONG, PVOID, LPCOLESTR, VARIANT*); 658 HRESULT PutFieldNoCopy(ULONG, PVOID, LPCOLESTR, VARIANT*);
659 HRESULT GetFieldNames(ULONG*, BSTR*); 659 HRESULT GetFieldNames(ULONG*, BSTR*);
660 BOOL IsMatchingType(); 660 BOOL IsMatchingType();
661 PVOID RecordCreate(); 661 PVOID RecordCreate();