reactos/sdk/include/psdk
Whindmar Saksit d41dec2e07
[SHELL32][CONTROL] Added basic IOpenControlPanel support (#6248)
Add a basic IOpenControlPanel implementation that supports Vista canonical registry names.

Implements `control.exe /name company.name [/page id]` and `IOpenControlPanel`
handling of Vista-style canonical registry names.

The documented `Microsoft.*` names don't work because they are simply not
in our registry but "[Executable Control Panel Items](https://learn.microsoft.com/en-us/windows/win32/shell/how-to-register-an-executable-control-panel-item-registration-)" registered by 3rd-party ISVs
will function correctly in control.exe and the COM API.

Notes:

- `IOpenControlPanel` is implemented in CControlPanelFolder.cpp because
  it is supposed to have tighter integration with that shell folder than
  it does in this PR.

- `IOpenControlPanel` is also supposed to handle .cpl files with canonical
  names registered under [`Extended Properties`](https://learn.microsoft.com/en-us/windows/win32/shell/how-to-register-dll-control-panel-item-registration-#step-3) but the control panel folder
  does not implement `IShellFolder2::GetDetailsEx` yet, so it will have to wait.

- These "Executable Control Panel Items" are also supposed to be displayed
  in the control panel itself but this PR does not address that. The
  `ITEMIDLIST` format for those needs investigation...

- The Wow64 handling is perhaps not correct but it does not matter,
  `ShellExecuteEx` gets to deal with whatever is in the `...\shell\open\command` key.
  `CControlPanelFolder` would have to take more care when it starts
  reading those keys so it knows when to append "(32-bit)" to the display name.

- `%s%s` because .cpl canonical names don't have the `::` prefix according
  to Geoff Chappell.

- Always returns `CPVIEW_CLASSIC` because our `CControlPanelFolder` does
  not support the category view.
2024-01-17 17:07:21 +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 Revert my last commits that break build. 2023-11-23 17:20:47 +01:00
appmgmt.h
asptlb.idl
asynot.idl
asysta.idl
atliface.idl
atsmedia.h
audioclient.idl
audiopolicy.idl
audiosessiontypes.h
authz.h
basetsd.h [PSDK] Minor cleanup and fixes in headers 2023-11-21 22:23:55 +01:00
basetyps.h
batclass.h Revert my last commits that break build. 2023-11-23 17:20:47 +01:00
bcrypt.h
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 [PSDK] Add missing PNP_VETO_TYPE PNP_VetoInsufficientRights enumerator. 2023-09-07 20:28:03 +02:00
cfgmgr32.h
cguid.h
chstring.h [FRAMEDYN] Do not define GCC <-> MSVC aliases when building the DLL 2023-07-23 23:58:42 +02:00
cierror.h
clusapi.h
CMakeLists.txt [SDK][UUID] Add ctffunc.idl (#6157) 2023-12-13 07:36:20 +09:00
cmdbas.idl
cmdtxt.idl
comcat.idl
commctrl.h [PSDK] commctrl.h: Add missing 'U' unsigned indicators. 2022-01-30 01:02:12 +01:00
commctrl.rh [PSDK] Import commctrl.rh, dde.rh, winnt.rh from wine-8.20 2023-11-23 12:45:55 +01:00
commdlg.h
common.ver [REACTOS] Remove references to ReactOS Foundation (#4557) 2022-06-27 16:00:20 +03: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
ctffunc.idl [SDK][UUID] Add ctffunc.idl (#6157) 2023-12-13 07:36:20 +09:00
ctfutb.idl [SDK][UUID] Strengthen <ctfutb.h> (#6135) 2023-12-11 07:51:17 +09:00
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
dbgeng.h
dbghelp.h
dbinit.idl
dbprop.idl
dbs.idl
dbt.h
dciman.h
dde.h
dde.rh [PSDK] Import commctrl.rh, dde.rh, winnt.rh from wine-8.20 2023-11-23 12:45:55 +01:00
ddeml.h
ddkernel.h
ddkmapi.h
ddraw.h [PSDK][WIN32SS] Fix WINNT in ddraw.h; remove NT_BUILD_ENVIRONMENT usage 2023-11-22 15:46:06 +01:00
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 [SDK] driverspecs.h: Add missing dummy _IRQL_limited_to_() definition (when _PREFAST_ is not defined). 2023-03-18 03:42:26 +01:00
drmexternals.idl
dsgetdc.h
dsound.h
dsrole.h
dvdevcod.h
dvdmedia.h
dvp.h
dwmapi.h [WINESYNC][SDK][DWMAPI] Import DWMAPI from WINE 8-14 (#5594) 2023-09-18 07:30:44 -07:00
dyngraph.idl
eaptypes.h
edevdefs.h
endpointvolume.idl
errorrep.h
evntprov.h
evntrace.h
exdisp.idl
exdispid.h
fci.h
fdi.h
fileapi.h
fltdefs.h
fontsub.h
fusion.idl
gcc_sal.h
gdiplus.h
gdiplusbase.h
gdiplusbrush.h
gdipluscolor.h
gdipluscolormatrix.h
gdipluseffects.h
gdiplusenums.h
gdiplusflat.h
gdiplusgpstubs.h
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
idispids.h
idndl.h
ieautomation.idl
ieverp.h
ifdef.h
ifmib.h
imagehlp.h
imm.h [MSCTFIME][SDK][USER32] Add msctfime.ime (stub) (#6141) 2023-12-11 22:37:25 +09:00
imnact.idl
imnxport.idl
in6addr.h
inaddr.h
indexsrv.idl
initguid.h
inputscope.idl
inseng.idl
intsafe.h
intshcut.h
ioevent.h
ipexport.h
iphlpapi.h
ipifcons.h
ipmib.h
iprtrmib.h
iptypes.h
isguids.h
knownfolders.h
ks.h
ksdebug.h
ksmedia.h [PSDK] Add GUIDs used by AC97 sample driver 2022-02-16 01:31:28 +03:00
ksproxy.h
ksuuids.h
ktmtypes.h
l2cmn.h
largeint.h
libloaderapi.h
lm.h
lmaccess.h
lmalert.h
lmapibuf.h
lmat.h
lmaudit.h
lmbrowsr.h
lmchdev.h
lmconfig.h
lmcons.h
lmerr.h
lmerrlog.h
lmjoin.h
lmmsg.h
lmon.h
lmremutl.h
lmrepl.h
lmserver.h
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
metahost.idl
mfidl.idl
mfobjects.idl
mftransform.idl
mgmtapi.h
midles.h
mimeinfo.idl
mimeole.idl
mlang.idl
mmddk.h
mmdeviceapi.idl
mmreg.h
mmsystem.h [PSDK] Fix definition of DRVCALLBACK for 64 bit 2023-01-04 10:32:28 +01:00
mprapi.h
ms_sal.h
msacm.h
msacmdlg.h
mscat.h
mscoree.idl
msctf.idl [MSCTFIME][SDK] Half-implement CTextEventSink (#6274) 2024-01-02 19:45:03 +09:00
msdadc.idl
mshtmcid.h
mshtmdid.h
mshtmhst.idl
mshtml.idl
msi.h [WINESYNC] include: Fix size of MsiEnumClientsEx[AW]'s array argument (GCC). 2022-03-20 19:28:39 +01:00
msidefs.h
msinkaut.idl
msiquery.h [WINESYNC] include: Add MSITRANSFORM_ERROR enum definition. 2022-03-20 19:28:28 +01:00
mssip.h
mstask.idl
mstcpip.h
mswsock.h
mswsockdef.h
msxml.idl
msxml2.idl
msxml2did.h
msxml6.idl
msxml6did.h
msxmldid.h
multimon.h
natupnp.idl
nb30.h
nddeapi.h
ndrtypes.h
netcfgn.h
netcfgx.h
netcon.h
netcon.idl
netevent.h
netfw.idl
netioapi.h
netiodef.h
netsh.h [PSDK] Fix issues with callback function type declarations 2023-07-15 12:59:06 +02:00
nettypes.h
newdev.h
nldef.h
no_sal2.h
npapi.h
nserror.h
nspapi.h
ntdd1394.h
ntdd8042.h
ntddbeep.h
ntddcdrm.h
ntddcdvd.h
ntddchgr.h
ntdddisk.h
ntddft.h
ntddkbd.h
ntddmmc.h
ntddmou.h
ntddndis.h [REACTOS] Fix typos (#6198) 2023-12-23 21:37:08 +01:00
ntddpar.h
ntddscsi.h
ntddser.h
ntddstor.h
ntddtape.h
ntddtdi.h
ntddvdeo.h [PSDK] ntddvdeo.h: Add missing GUIDs. 2023-12-28 22:11:05 +01:00
ntddvol.h
ntdll.h
ntdsapi.h
ntgdi.h
ntiologc.h
ntldap.h
ntlsa.h
ntquery.h
ntsecapi.h
ntsecpkg.h
ntstatus.h [PSDK][BOOTMGR] Import NTSTATUS definitions of BitLocker (#4417) 2022-05-03 17:30:11 +02:00
ntverp.h [REACTOS] Remove references to ReactOS Foundation (#4557) 2022-06-27 16:00:20 +03:00
oaidl.idl
objbase.h [PSDK] Add COWAIT_DEFAULT 2022-09-06 21:11:09 +02:00
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
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
richole.idl
row.idl
rowchg.idl
rpc.h
rpcasync.h
rpcdce.h
rpcdce2.h
rpcdcep.h
rpcndr.h
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 [SDK] sdkddkver.h: Add NTDDI_* defines for newest Windows 10 and 11 versions. 2023-03-14 00:14:12 +01:00
secext.h
security.h
sensapi.h
sensevts.idl
servprov.idl
sesprp.idl
setupapi.h
sfc.h
sfcfiles.h [SFCFILES] Add sfcfiles dll and header file 2022-01-22 13:28:50 +01:00
shdeprecated.idl
shdispid.h
shellapi.h
shldisp.idl
shlguid.h [SHELL32][CONTROL] Added basic IOpenControlPanel support (#6248) 2024-01-17 17:07:21 +01:00
shlobj.h [SHELL32][SDK] Implement SHStartNetConnectionDialogA (#5847) 2023-10-28 22:29:05 +09:00
shlwapi.h [SHLWAPI][SDK] Implement SHGetViewStatePropertyBag Part 1 (#5605) 2023-08-23 15:00:07 +09:00
shobjidl.idl [SHELL32][CONTROL] Added basic IOpenControlPanel support (#6248) 2024-01-17 17:07:21 +01:00
shtypes.idl
snmp.h
softpub.h
specstrings.h
specstrings_strict.h
specstrings_undef.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
tcpioctl.h
tcpmib.h
tdi.h
tdiinfo.h
textserv.h [RICHED20] Decorate thiscall functions as such. ROSTESTS-375 CORE-17021 2021-11-14 12:54:01 -05:00
textstor.idl
tlhelp32.h
tlogstg.idl
tmschema.h
tom.idl
traffic.h
transact.idl
tuner.idl
tvout.h
twain.h
txcoord.idl
txdtc.idl
udpmib.h
unknown.h
unknwn.idl
urlhist.idl
urlmon.idl
usb.h
usb100.h
usb200.h
usbcamdi.h
usbdi.h
usbioctl.h
usbiodef.h
usbrpmif.h
usbuser.h
userenv.h
usp10.h
uxtheme.h
verrsrc.h
versionhelpers.h
vfw.h
vfwmsgs.h
vmr9.idl
vmrender.idl
vsbackup.idl
vss.idl
vsstyle.h
vssym32.h
vswriter.idl
w32api.h
warning.h [PSDK] Clarify the FIXME comment about this mysterious warning.h (here for WDK compatibility). 2022-11-24 01:18:11 +01:00
wbemcli.idl
wbemdisp.idl
wbemprov.idl
wdbgexts.h [PSDK][NTOS:KD64] Turns out, that even Clang in MSVC mode needs the 64-bits pointer extension hack! 2022-11-24 13:30:43 +01:00
werapi.h
wia.h
wia_lh.idl
wia_xp.idl
winable.h
winapifamily.h
winbase.h [PSDK] Minor cleanup and fixes in headers 2023-11-21 22:23:55 +01:00
winber.h
wincodec.idl
wincodecsdk.idl
wincon.h
wincred.h
wincrypt.h
winddi.h
winddiui.h
windef.h
windns.h
windot11.h
windows.h Revert my last commits that break build. 2023-11-23 17:20:47 +01:00
windowsx.h [PSDK] Fix x64 incompatibilities in ***Box_GetItemData(). Addendum to 6572dd7f4. 2022-11-28 15:02:39 +01:00
winefs.h
winerror.h [WINESYNC][SDK][DWMAPI] Import DWMAPI from WINE 8-14 (#5594) 2023-09-18 07:30:44 -07:00
winfax.h
wingdi.h [GDI32] Update Wine Metafile Code 2021-09-27 16:18:20 -05:00
winhttp.h
wininet.h
winineti.h
winioctl.h
winldap.h
winnetwk.h
winnls.h
winnls32.h
winnt.rh Revert my last commits that break build. 2023-11-23 17:20:47 +01:00
winpackagefamily.h
winperf.h
winreg.h [PSDK] Add some missing argument names 2021-12-31 21:27:48 +01:00
winres.h
winresrc.h Revert my last commits that break build. 2023-11-23 17:20:47 +01:00
winsafer.h
winscard.h
winsmcrd.h
winsnmp.h Revert my last commits that break build. 2023-11-23 17:20:47 +01:00
winsock.h
winsock2.h
winsplp.h
winspool.h
winsvc.h
winsxs.idl
winternl.h [PSDK][NDK] Update SYSTEM_PERFORMANCE_INFORMATION definition with Win7+ members. 2023-06-15 12:55:08 +02:00
wintrust.h
winuser.h [PSDK] winuser.h: Enclose the OBM/OCR/OIC defines in OEMRESOURCE guard (see also winuser.rh) 2023-11-22 15:46:19 +01:00
winuser.rh [PSDK] Make winuser.rh more compatible with the one from MS PSDK 2023-11-23 12:44:50 +01:00
winver.h
winwlx.h
wlanapi.h
wlantypes.h
wmdrmsdk.idl
wmistr.h
wmiutils.idl
wmsbuffer.idl
wmsdk.h
wmsdkidl.idl
ws2atm.h
ws2bth.h
ws2def.h
ws2ipdef.h
ws2spi.h
ws2tcpip.h
wsahelp.h
wsipv6ok.h
wsipx.h
wsnetbs.h
wsnwlink.h
wspiapi.h
wtsapi32.h
wtypes.idl [PSDK] SECURITY_ATTRIBUTES: Remove size_is(nLength) (#4832) 2022-11-01 03:14:09 +01:00
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 */