reactos/sdk/include/psdk
Joachim Henze 0eb86c9990 [0.4.11] Update Scrollbar code to state of master 2023-March-12
by porting back:
0.4.15-dev-5784-g 2aea4ab945 [NTUSER] Scrollbar.c pure whitespace fixes
0.4.15-dev-5680-g 5ad5737370 CORE-18050 [NTUSER] Delete temporary workarounds in co_IntSetScrollInfo() (#4985)
0.4.15-dev-5355-g 0484beb04b CORE-18593 [NTUSER] Don't redraw scrollbar if it is hidden command prompt (#4849)
0.4.15-dev-4492-g 03422451b3 Add '\n' to debug logs (partially, only the scrollbar.c part)
0.4.15-dev-3875-g 977c129f33 CORE-18048 [USER32] SetScrollPos should not bypass UserApiHook (#4372)
0.4.15-dev-3849-g fd28a69de6 CORE-17780 [WIN32SS] Store the scrollbar theming enabled flag in the scrollbar (#4367)
0.4.15-dev-3175-g 222acf5a3e CORE-17777 [NTUSER] Scrollbar.c, Avoid potential out-of-bounds-accesses in co_IntSetScrollInfo()
0.4.15-dev-3174-g dda9c3979e CORE-17769 'Rapps Listview manual resize may erroneously not draw the triangles sometimes'
0.4.15-dev-3147-g 3bf7e3ac13 CORE-17754 and CORE-17755 [NTUSER] Improve Themed Scrollbars by Minimizing Updates (#3953)
0.4.15-dev-3086-g 236649c626 CORE-16375 [UXTHEME][NTUSER] Fix flashing of scrollbar when scrolling (#3868)
0.4.15-dev-2375-g ffea5152e6 [WIN32SS][NTUSER] Fix an integer underflow within scrollbar info setting
0.4.14-dev-1134-g 00adb1a3f9 [WIN32SS] Improve Drawing Scrollbars
- CORE-14755 fixed, flashing scrollbar triangles (we know 131 affected apps just from rapps!)
- CORE-13931 fixed, FamiTracker invisible about-dlg
- CORE-14685 improves a bit, but is not entirely fixed
- CORE-11561 'Notepad scrollbars problem' fixed

This will also speed up NSIS installers that display their file-copy-progress by
a self-scrolling listview.
2023-03-12 11:01:41 +01:00
..
accctrl.h
access.idl
aclapi.h
aclui.h
activaut.idl
activdbg.idl
activscp.idl
adshlp.h
advpub.h
af_irda.h
afxres.h
appmgmt.h
asptlb.idl
asynot.idl
asysta.idl
atliface.idl
atsmedia.h
audioclient.idl
audiopolicy.idl
audiosessiontypes.h
authz.h
basetsd.h [REACTOS] Fix x64 build 2017-10-22 16:49:04 +02:00
basetyps.h
batclass.h
bcrypt.h [PSDK] Fix wide string literals in bcrypt.h. Should fix VC2010 build. 2018-03-09 19:35:20 +01:00
bdaiface.idl
binres.idl
bits.idl
bits1_5.idl
bits2_0.idl
bits2_5.idl
bits3_0.idl
bitsmsg.h
bthdef.h
cderr.h
cfg.h
cfgmgr32.h
cguid.h
chstring.h
cierror.h
clusapi.h
CMakeLists.txt [SDK] Add transact.idl, txcoord.idl and txdtc.idl, and introduce MS-PSDK-compatible adsiid library that defines GUIDs used by ADS interfaces. 2018-11-30 21:49:23 +01:00
cmdbas.idl
cmdtxt.idl
comcat.idl
commctrl.h [PSDK] Add some missing BS_* definitions. CORE-14434 2018-04-03 13:24:07 +01:00
commdlg.h [PSDK] Add missing OFN_EX_NOPLACESBAR. CORE-14656 2018-05-27 04:03:38 +01:00
common.ver [0.4.11][REACTOS] Remove references to ReactOS Foundation (#4557) 2022-10-24 00:24:59 +02:00
commoncontrols.idl
compstui.h
concurrencysal.h
control.idl
cor.idl
cordebug.idl
corerror.h
corhdr.h
cpl.h
cplext.h
crtrow.idl
cryptdlg.h
cryptuiapi.h
ctfutb.idl
ctxtcall.idl
custcntl.h
cvconst.h
d3d.h
d3d8.h
d3d8types.h
d3d9.h
d3d9types.h
d3d10.idl
d3d10effect.h
d3d10misc.h
d3d10shader.h
d3d11shader.h
d3dcommon.idl
d3dcompiler.h
d3dnthal.h
d3drm.h
d3drmdef.h
d3drmobj.h
d3drmwin.h
d3dtypes.h
d3dukmdt.h
d3dx8core.h
dbccmd.idl
dbcses.idl
dbdsad.idl
dbghelp.h [PSDK] Add SymTagENum to dbghelp.h and imagehlp.h 2018-07-14 15:48:23 +02:00
dbinit.idl
dbprop.idl
dbs.idl
dbt.h
dciman.h
dde.h
ddeml.h
ddkernel.h
ddkmapi.h
ddraw.h
ddrawgdi.h
ddrawi.h
ddrawint.h
delayimp.h
delayloadhandler.h
devenum.idl
devguid.h
devicetopology.idl
devpkey.h
devpropdef.h
dhcpcapi.h
dhcpcsdk.h
digitalv.h
dimm.idl
dinput.h
dinputd.h
diskguid.h
dispex.idl
dlgs.h
dmemmgr.h
dmksctrl.h
docobj.idl
docobjectservice.idl
downloadmgr.idl
dpfilter.h
dplay.h
dplobby.h
driverspecs.h
drmexternals.idl [PSDK] Update wmsdkidl.idl and import some of its related idl files from Wine Staging 2.16. CORE-13762 2017-10-08 11:49:33 +01:00
dsgetdc.h
dsound.h
dsrole.h
dvdevcod.h
dvdmedia.h
dvp.h
dwmapi.h
dyngraph.idl
eaptypes.h
edevdefs.h
endpointvolume.idl
errorrep.h
evntprov.h
evntrace.h [PSDK] Fix definition of INVALID_PROCESSTRACE_HANDLE as suggested by Thomas. 2018-01-07 22:29:17 +01:00
exdisp.idl
exdispid.h
fci.h
fdi.h
fileapi.h
fontsub.h
fusion.idl
gdiplus.h
gdiplusbase.h
gdiplusbrush.h
gdipluscolor.h
gdipluscolormatrix.h
gdipluseffects.h
gdiplusenums.h
gdiplusflat.h [PSDK] Add missing GdipSetPathGradientPath() and GdipTranslatePenTransform(). CORE-14656 2018-05-27 04:09:49 +01:00
gdiplusgpstubs.h [PSDK] Update gdiplusflat.h and gdiplusgpstubs.h. CORE-14225 2018-01-19 00:15:20 +01:00
gdiplusgraphics.h
gdiplusheaders.h
gdiplusimageattributes.h
gdiplusimaging.h
gdiplusinit.h
gdipluslinecaps.h
gdiplusmatrix.h
gdiplusmem.h
gdiplusmetafile.h
gdiplusmetaheader.h
gdipluspath.h
gdipluspen.h
gdipluspixelformats.h
gdiplusstringformat.h
gdiplustypes.h
guiddef.h
hidpi.h
hidusage.h
hlguids.h
hlink.idl
htiface.idl
htiframe.idl
htmlhelp.h
http.h
httpext.h
httprequest.idl
httprequestid.h
i_cryptasn1tls.h
iads.idl
icftypes.idl
icm.h
icmpapi.h [TRACERT] Rewrite tracert 2018-01-02 09:43:14 +00:00
idispids.h
idndl.h
ieautomation.idl [PSDK] Import ieautomation.idl from Wine 3.0. CORE-14225 2018-01-19 00:35:51 +01:00
ieverp.h
ifdef.h
ifmib.h
imagehlp.h [PSDK] Add SymTagENum to dbghelp.h and imagehlp.h 2018-07-14 15:48:23 +02:00
imm.h
imnact.idl
imnxport.idl
in6addr.h
inaddr.h
indexsrv.idl
initguid.h
inputscope.idl
inseng.idl
intsafe.h
intshcut.h
ioevent.h
ipexport.h ! Fix build of tracert 2018-01-06 17:07:54 +01:00
iphlpapi.h [SDK] Add AllocateAndGetTcp/UdpEx/2TableFromStack() functions family 2018-11-27 21:36:47 +01:00
ipifcons.h
ipmib.h
iprtrmib.h [SDK] Move TCPIP_OWNER_MODULE_BASIC_INFO definition to the right file 2018-11-29 20:30:23 +01:00
iptypes.h [SDK] Move TCPIP_OWNER_MODULE_BASIC_INFO definition to the right file 2018-11-29 20:30:23 +01:00
isguids.h
kcom.h
knownfolders.h
ks.h
ksdebug.h
ksmedia.h
ksproxy.h
ksuuids.h
ktmtypes.h
l2cmn.h
largeint.h
libloaderapi.h [PSDK] Add some missing definitions to winbase.h. Import libloaderapi.h from Wine Staging 2.16. CORE-13762 2017-10-19 22:29:35 +01:00
lm.h
lmaccess.h [PSDK] Add missing struct _GROUP_INFO_3 to lmaccess.h 2018-09-08 22:21:15 +02:00
lmalert.h
lmapibuf.h
lmat.h
lmaudit.h
lmbrowsr.h
lmchdev.h
lmconfig.h
lmcons.h
lmerr.h [PSDK] Add missing NERR-codes to lmerr.h 2018-11-11 22:43:08 +01:00
lmerrlog.h [PSDK] Add missing NELOG_ error codes to lmerrlog.h. 2018-11-24 22:29:02 +01:00
lmjoin.h
lmmsg.h
lmon.h
lmremutl.h
lmrepl.h [PSDK:LM] Fix parameter types. 2018-03-10 18:18:21 +01:00
lmserver.h [SDK] Improve lmserver.h 2018-05-01 16:15:51 +02:00
lmshare.h
lmsname.h
lmstats.h
lmsvc.h
lmuse.h
lmuseflg.h
lmwksta.h
loadperf.h
lzexpand.h
mapi.h
mapicode.h
mapidefs.h
mapiform.h
mapiguid.h
mapitags.h
mapiutil.h
mapival.h
mapix.h
mciavi.h
mcx.h
mediaobj.idl [PSDK] Update wmsdkidl.idl and import some of its related idl files from Wine Staging 2.16. CORE-13762 2017-10-08 11:49:33 +01:00
metahost.idl
mfidl.idl [PSDK] Update wmsdkidl.idl and import some of its related idl files from Wine Staging 2.16. CORE-13762 2017-10-08 11:49:33 +01:00
mfobjects.idl [PSDK] Update wmsdkidl.idl and import some of its related idl files from Wine Staging 2.16. CORE-13762 2017-10-08 11:49:33 +01:00
mftransform.idl [PSDK] Update wmsdkidl.idl and import some of its related idl files from Wine Staging 2.16. CORE-13762 2017-10-08 11:49:33 +01:00
mgmtapi.h
midles.h
mimeinfo.idl
mimeole.idl
mlang.idl
mmddk.h [PSDK] Add missing DRV_QUERYFUNCTIONINSTANCEID. CORE-14656 2018-05-27 03:55:03 +01:00
mmdeviceapi.idl
mmreg.h [PSDK] Update mmreg.h and rpcndr.h. CORE-13762 2017-10-08 11:49:33 +01:00
mmsystem.h
mprapi.h
msacm.h
msacmdlg.h
mscat.h
mscoree.idl
msctf.idl [PSDK] Update msctf.idl. CORE-14656 2018-06-04 03:40:17 +01:00
msdadc.idl
mshtmcid.h
mshtmdid.h
mshtmhst.idl
mshtml.idl
msi.h [PSDK] Update msi.h. CORE-13762 2017-10-08 11:31:31 +01:00
msidefs.h
msinkaut.idl
msiquery.h
mssip.h
mstask.idl
mstcpip.h
mswsock.h
mswsockdef.h
msxml.idl
msxml2.idl
msxml2did.h
msxml6.idl
msxml6did.h
msxmldid.h
multimon.h
nb30.h
nddeapi.h
ndrtypes.h
netcfgn.h
netcfgx.h
netcon.h
netcon.idl
netevent.h
netfw.idl
netioapi.h
netiodef.h
nettypes.h
newdev.h
nldef.h
npapi.h
nserror.h [PSDK] Update wmsdkidl.idl and import some of its related idl files from Wine Staging 2.16. CORE-13762 2017-10-08 11:49:33 +01:00
nspapi.h
ntdd1394.h
ntdd8042.h
ntddbeep.h
ntddcdrm.h [PSDK] Define the IOCTL_CDROM_EJECT_MEDIA IOCTL 2017-12-03 18:17:28 +01:00
ntddcdvd.h
ntddchgr.h
ntdddisk.h [PSDK] Add some missing defines 2017-12-16 21:48:34 +01:00
ntddft.h
ntddkbd.h
ntddmmc.h
ntddmou.h
ntddndis.h
ntddpar.h
ntddscsi.h [PSDK] Add various defines needed to build fastfat_new 2017-11-23 23:27:51 +01:00
ntddser.h
ntddstor.h
ntddtape.h
ntddtdi.h
ntddvdeo.h
ntddvol.h
ntdll.h
ntdsapi.h [PSDK] Update ntdsapi.h. CORE-14656 2018-06-04 03:42:29 +01:00
ntgdi.h
ntiologc.h
ntldap.h
ntlsa.h
ntquery.h
ntsecapi.h [LSASRV][SECUR32] Implement LsaRegisterPolicyChangeNotification and LsaUnregisterPolicyChangeNotification 2018-08-04 22:17:52 +02:00
ntsecpkg.h [PSDK] ntsecpkg.h: fix minor typos (make some structure names MS-PSDK-compatible), and add LSA_TOKEN_INFORMATION_V2. 2018-06-27 23:40:13 +02:00
ntstatus.h [PSDK] Add various defines needed to build fastfat_new 2017-11-23 23:27:51 +01:00
ntverp.h [0.4.11][REACTOS] Remove references to ReactOS Foundation (#4557) 2022-10-24 00:24:59 +02:00
oaidl.idl
objbase.h
objectarray.idl
objerror.h
objfwd.h
objidl.idl
objsafe.idl
objsel.h
ocidl.idl
ocmm.idl
odbcinst.h
ole.h
ole2.h
ole2ver.h
oleacc.idl
oleauto.h
olectl.h
olectlid.h
oledb.idl
oledlg.h
oleidl.idl
opnrst.idl
optary.idl
patchapi.h
pbt.h
pdh.h
pdhmsg.h
perhist.idl
polarity.h
poppack.h
powrprof.h
prntfont.h
propidl.idl
propkey.h
propkeydef.h
propsys.idl
propvarutil.h [PSDK] Update propvarutil.h. CORE-14434 2018-03-21 13:08:15 +01:00
provexce.h
provider.h
prsht.h
psapi.h
pshpack1.h
pshpack2.h
pshpack4.h
pshpack8.h
pshpck16.h
pstore.idl
qos.h
rapi.h
ras.h
rasdlg.h
raseapif.h
raserror.h
rassapi.h
rasshost.h
README.w32api
reason.h
regstr.h
richedit.h [RichEd20] Fix structure by adding missing byte, see CORE-8452. 2018-01-07 14:47:42 -06:00
richole.idl
row.idl
rowchg.idl
rpc.h
rpcasync.h
rpcdce.h
rpcdce2.h
rpcdcep.h
rpcndr.h [PSDK] Update mmreg.h and rpcndr.h. CORE-13762 2017-10-08 11:49:33 +01:00
rpcnsi.h
rpcnsip.h
rpcnterr.h
rpcproxy.h
rstbas.idl
rstinf.idl
rstloc.idl
sal.h
sal_old.h
scarderr.h
schannel.h
schemadef.h
schnlsp.h
scrnsave.h
sddl.h
sdkddkver.h [NDK] Fix/improve definition of TEB 2017-10-22 14:36:18 +02:00
secext.h
security.h
sensapi.h
sensevts.idl
servprov.idl
sesprp.idl
setupapi.h
sfc.h
shdeprecated.idl
shdispid.h
shellapi.h [PSDK] Add missing shell notification message flags. 2018-02-10 15:43:24 +01:00
shldisp.idl
shlguid.h [PSDK] Try to fix build 2017-10-16 18:32:23 +03:00
shlobj.h [SHELL32] Split dialogs/folder_options.cpp (#582) 2018-06-06 14:04:50 +02:00
shlwapi.h
shobjidl.idl [PSDK] Add definitions for IUserNotification, IQueryContinue, and IUserNotification2 and IUserNotificationCallback (Vista+). 2018-02-15 22:36:50 +01:00
shtypes.idl
snmp.h
softpub.h
specstrings.h
sql.h
sqlext.h
sqltypes.h
sqlucode.h
srrestoreptapi.h
sspi.h
stdole2.idl
stdole32.idl
sti.h
stierr.h
stireg.h
stralign.h
strmif.idl
strsafe.h
structuredquerycondition.idl
subauth.h
suppress.h
svcguid.h
svrapi.h
t2embapi.h
tapi.h
taskschd.idl [PSDK] Import taskschd.idl from Wine Staging 3.3. CORE-14434 2018-03-25 12:52:36 +01:00
tcpioctl.h [SDK] Add a non documenter TOIID used to query modules information 2018-11-27 21:36:47 +01:00
tcpmib.h
tdi.h
tdiinfo.h
textserv.h
textstor.idl
tlhelp32.h
tlogstg.idl
tmschema.h
tom.idl
traffic.h
transact.idl [SDK] Add transact.idl, txcoord.idl and txdtc.idl, and introduce MS-PSDK-compatible adsiid library that defines GUIDs used by ADS interfaces. 2018-11-30 21:49:23 +01:00
tuner.idl
tvout.h
twain.h
txcoord.idl [SDK] Add transact.idl, txcoord.idl and txdtc.idl, and introduce MS-PSDK-compatible adsiid library that defines GUIDs used by ADS interfaces. 2018-11-30 21:49:23 +01:00
txdtc.idl [SDK] Add transact.idl, txcoord.idl and txdtc.idl, and introduce MS-PSDK-compatible adsiid library that defines GUIDs used by ADS interfaces. 2018-11-30 21:49:23 +01:00
udpmib.h
unknown.h
unknwn.idl [PSDK] Update unknwn.idl. CORE-13762 2017-10-08 14:07:28 +01:00
urlhist.idl
urlmon.idl
usb.h
usb100.h
usb200.h [PSDK] Add USB hub class-specific request type codes. 2018-01-21 19:35:34 +01:00
usbcamdi.h
usbdi.h
usbioctl.h
usbiodef.h
usbrpmif.h
usbuser.h
userenv.h [PSDK] Add DeleteProfileA/W prototypes to userenv.h. 2018-12-08 15:23:04 +01:00
usp10.h
uxtheme.h
verrsrc.h
vfw.h
vfwmsgs.h
vmr9.idl
vmrender.idl
vss.idl
vsstyle.h
vssym32.h
vswriter.h
w32api.h
warning.h
wbemcli.idl
wbemdisp.idl
wbemprov.idl
wdbgexts.h
werapi.h
wia.h
wia_lh.idl
wia_xp.idl
winable.h
winbase.h [PSDK][XDK] Add some missing definitions. CORE-14434 2018-04-03 13:35:01 +01:00
winber.h
wincodec.idl
wincodecsdk.idl
wincon.h
wincred.h
wincrypt.h [PSDK] Fix the build for msvc 2010. 2018-03-10 12:25:41 +01:00
winddi.h [SDK] Fix NT6 building issues and improve SDK NT6 headers. 2018-02-10 18:58:35 +01:00
winddiui.h
windef.h [PSDK][XDK] Remove DECLSPEC_* from windef.h, protect against redefinition in winnt.h 2018-02-04 19:28:36 +01:00
windns.h
windot11.h
windows.h
windowsx.h [PSDK][REACTOS] Fix definitions and usage of DWLP_MSGRESULT, DWLP_DLGPROC, and DWLP_USER 2018-03-04 16:27:07 +01:00
winefs.h
winerror.h
winfax.h
wingdi.h
winhttp.h [PSDK] Update winhttp.h. CORE-14225 2018-01-20 13:54:50 +01:00
wininet.h
winineti.h
winioctl.h
winldap.h
winnetwk.h
winnls.h
winnls32.h
winperf.h
winreg.h
winres.h
winresrc.h
winsafer.h
winscard.h
winsmcrd.h
winsnmp.h
winsock.h
winsock2.h
winsplp.h
winspool.h
winsvc.h
winsxs.idl
winternl.h
wintrust.h
winuser.h [0.4.11] Update Scrollbar code to state of master 2023-March-12 2023-03-12 11:01:41 +01:00
winver.h
winwlx.h
wlanapi.h
wlantypes.h
wmdrmsdk.idl [PSDK] Update wmsdkidl.idl and import some of its related idl files from Wine Staging 2.16. CORE-13762 2017-10-08 11:49:33 +01:00
wmistr.h
wmiutils.idl
wmsbuffer.idl
wmsdk.h [PSDK] Update wmsdkidl.idl and import some of its related idl files from Wine Staging 2.16. CORE-13762 2017-10-08 11:49:33 +01:00
wmsdkidl.idl [PSDK] Update wmsdkidl.idl and import some of its related idl files from Wine Staging 2.16. CORE-13762 2017-10-08 11:49:33 +01:00
ws2atm.h
ws2bth.h
ws2def.h
ws2ipdef.h
ws2spi.h [SDK] Fix NT6 building issues and improve SDK NT6 headers. 2018-02-10 18:58:35 +01:00
ws2tcpip.h
wsahelp.h
wsipv6ok.h
wsipx.h
wsnetbs.h
wsnwlink.h
wspiapi.h
wtsapi32.h [PSDK] Add IDCANCEL and IDASYNC values (returned by MessageBoxTimeout() and WTSSendMessage() functions). 2018-08-17 17:12:19 +02:00
wtypes.idl
wuapi.idl
xcmc.h
xinput.h
xmldom.h
xmldom.idl
xmldomdid.h
xmldso.idl
xmldsodid.h
xmllite.idl
xprtdefs.h
zmouse.h

        Free headers and libraries for the Win32 API

        Originally written by Anders Norlander 
	Last known and not working email: <anorland@hem2.passagen.se>

	Now maintained by MinGW Developers
        Send bug reports and questions to MinGW-users@lists.sourceforge.net
	URL: http://www.mingw.org

* License 2.0

  You are free to use, modify and copy this package as long as this
  README.w32api file is included unmodified with any distribution, source or
  binary, of this package.  No restrictions are imposed on any package or 
  product using or incorporating this package.  You are free to license your 
  package as you see fit.
  
  You may not restrict others freedoms as set forth in the above paragraph.
  You may distribute this library as part of another package or as a
  modified package if and only if you do *not* restrict others freedoms as
  set forth in the above paragraph as it concerns this package.  You do have
  the right to restrict uses of any package using this package.

  This package is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

* What is it?

  This is a free set of headers and import libraries for the Win32
  API.  The library differs from the GNU Windows32 library in that I
  have tried to use a file structure that mirrors Microsoft's.  I
  don't like having *all* definitions in one single header as in the
  GNU Windows32 library, I want a clean separation between different
  parts of the API.

  Daniel Guerrero Miralles contributed the DirectX 6.1 import
  libraries and DirectX GUID definitions.

  See the files NOTES and TODO for what needs to be done.

* Size does matter

  Since the WIN32 API is severely bloated (as most MS products seem to
  be) the headers are designed to be as compact as possible, while
  still being readable, in order to minimize parsing time.

  The convention is to omit parameter names for function prototypes,
  no excessive white space. Struct/union members are indented with tab
  characters to make them readable. Comment only when necessary.

  If you are contributing a patch please follow the above mentioned
  convention. Make sure your editor does not convert tabs to spaces.

* What do I need to use it?

  The library is intended for use with egcs 1.1 or later but it is
  possible to use with some other tools as well (although it is not
  very useful). LCC-Win32, MSVC and Borland C++ 5.01 or higher may
  work as well. The import libraries are for GNU tools only.

  The library requires egcs 1.1 or later, since the `#pragma pack'
  feature is used. Mumit Khan provides egcs patches and binaries for
  win32 at `http://www.xraylith.wisc.edu/~khan/software/gnu-win32/'.

  If you are going to use C++ COM objects, you will need a version of
  egcs that recognizes the `comobject' attribute and then define
  HAVE_COMOBJECT when compiling your program. Antonio Mendes de
  Oliveira Neto has a prebuilt version at
  `http://li.facens.br/EGCS-WIN32/english/index.html'. Note that this
  is very experimental. If you want to use COM objects in C++ but with
  C interfaces you must define CINTERFACE.

  Objective-C programs cannot use COM functionality because of
  conflicts between the interface define and the Objective-C
  @interface directive.  There is also a conflict between the windows
  Obj-C BOOL types. To avoid this conflict you should use WINBOOL in
  all places where you would use BOOL in a C/C++ windows program. If
  you include any windows headers *after* `windows.h' you must use the
  method outlined below:

  /* non-windows includes */
  #include <objc/objc.h>
  ...
  /* windows specific headers */
  #include <windows.h>
  #define BOOL WINBOOL
  #include <commctrl.h>
  ...
  #undef BOOL
  ...
  /* include other headers */