#define WINVER 0x0500
#define _WIN32_WINNT 0x0500

#include <windows.h>
#include <iostream.h>
#include <chanmgr.h>
#include <hlink.h>
#include <mobsync.h>
#include <objsel.h>
#include <richedit.h>
#include <setupapi.h>
#include <shlwapi.h>

void main( void )
{

cout << "Windows 95/98/ME structures" << endl ;

ACCESSTIMEOUT at;
at.cbSize = sizeof ( ACCESSTIMEOUT ) ;
cout << "Size of ACCESSTIMEOUT is " << at.cbSize << " bytes" << endl ;

APPBARDATA abd;
abd.cbSize = sizeof ( APPBARDATA ) ;
cout << "Size of APPBARDATA is " << abd.cbSize << " bytes" << endl ;

BIDIOPTIONS bo;
bo.cbSize = sizeof ( BIDIOPTIONS ) ;
cout << "Size of BIDIOPTIONS is " << bo.cbSize << " bytes" << endl ;

CHANNELCATEGORYINFO cci;
cci.cbSize = sizeof ( CHANNELCATEGORYINFO ) ;
cout << "Size of CHANNELCATEGORYINFO is " << cci.cbSize << " bytes" << endl ;

CHANNELSHORTCUTINFO csi;
csi.cbSize = sizeof ( CHANNELSHORTCUTINFO ) ;
cout << "Size of CHANNELSHORTCUTINFO is " << csi.cbSize << " bytes" << endl ;

CHARFORMAT cf;
cf.cbSize = sizeof ( CHARFORMAT ) ;
cout << "Size of CHARFORMAT is " << cf.cbSize << " bytes" << endl ;

CHARFORMAT2 cf2;
cf2.cbSize = sizeof ( CHARFORMAT2 ) ;
cout << "Size of CHARFORMAT2 is " << cf2.cbSize << " bytes" << endl ;

DLLVERSIONINFO dvi;
dvi.cbSize = sizeof ( DLLVERSIONINFO ) ;
cout << "Size of DLLVERSIONINFO is " << dvi.cbSize << " bytes" << endl ;

DOCINFO di;
di.cbSize = sizeof ( DOCINFO ) ;
cout << "Size of DOCINFO is " << di.cbSize << " bytes" << endl ;

DSOP_INIT_INFO dii ;
dii.cbSize = sizeof ( DSOP_INIT_INFO ) ;
cout << "Size of DSOP_INIT_INFO is " << dii.cbSize << " bytes" << endl ;

DSOP_SCOPE_INIT_INFO dsii;
dsii.cbSize = sizeof ( DSOP_SCOPE_INIT_INFO ) ;
cout << "Size of DSOP_SCOPE_INIT_INFO is " << dsii.cbSize << " bytes" << endl ;

FILTERKEYS fk;
fk.cbSize = sizeof ( FILTERKEYS ) ;
cout << "Size of FILTERKEYS is " << fk.cbSize << " bytes" << endl ;

GUITHREADINFO gti;
gti.cbSize = sizeof ( GUITHREADINFO ) ;
cout << "Size of GUITHREADINFO is " << gti.cbSize << " bytes" << endl ;

HELPINFO hi;
hi.cbSize = sizeof ( HELPINFO ) ;
cout << "Size of HELPINFO is " << hi.cbSize << " bytes" << endl ;

HIGHCONTRAST hc;
hc.cbSize = sizeof ( HIGHCONTRAST ) ;
cout << "Size of HIGHCONTRAST is " << hc.cbSize << " bytes" << endl ;

HLBWINFO hwi ;
hwi.cbSize = sizeof ( HLBWINFO ) ;
cout << "Size of HLBWINFO is " << hwi.cbSize << " bytes" << endl ;

ICONMETRICS im;
im.cbSize = sizeof ( ICONMETRICS ) ;
cout << "Size of ICONMETRICS is " << im.cbSize << " bytes" << endl ;

MCHITTESTINFO mchti;
mchti.cbSize = sizeof ( MCHITTESTINFO ) ;
cout << "Size of MCHITTESTINFO is " << mchti.cbSize << " bytes" << endl ;

MENUITEMINFO mii;
mii.cbSize = sizeof ( MENUITEMINFO ) ;
cout << "Size of MENUITEMINFO is " << mii.cbSize << " bytes" << endl ;

MINIMIZEDMETRICS mm;
mm.cbSize = sizeof ( MINIMIZEDMETRICS ) ;
cout << "Size of MINIMIZEDMETRICS is " << mm.cbSize << " bytes" << endl ;

MONITORINFO moi;
moi.cbSize = sizeof ( MONITORINFO ) ;
cout << "Size of MONITORINFO is " << moi.cbSize << " bytes" << endl ;

MOUSEKEYS mo;
mo.cbSize = sizeof ( MOUSEKEYS ) ;
cout << "Size of MOUSEKEYS is " << mo.cbSize << " bytes" << endl ;

MSGBOXPARAMS mbp;
mbp.cbSize = sizeof ( MSGBOXPARAMS ) ;
cout << "Size of MSGBOXPARAMS is " << mbp.cbSize << " bytes" << endl ;

NONCLIENTMETRICS ncm;
ncm.cbSize = sizeof ( NONCLIENTMETRICS ) ;
cout << "Size of NONCLIENTMETRICS is " << ncm.cbSize << " bytes" << endl ;

NOTIFYICONDATA nid;
nid.cbSize = sizeof ( NOTIFYICONDATA ) ;
cout << "Size of NOTIFYICONDATA is " << nid.cbSize << " bytes" << endl ;

PARAFORMAT pf;
pf.cbSize = sizeof ( PARAFORMAT ) ;
cout << "Size of PARAFORMAT is " << pf.cbSize << " bytes" << endl ;

PARAFORMAT2 pf2;
pf2.cbSize = sizeof ( PARAFORMAT2 ) ;
cout << "Size of PARAFORMAT2 is " << pf2.cbSize << " bytes" << endl ;

REBARBANDINFO rbi;
rbi.cbSize = sizeof ( REBARBANDINFO ) ;
cout << "Size of REBARBANDINFO is " << rbi.cbSize << " bytes" << endl ;

REBARINFO ri;
ri.cbSize = sizeof ( REBARINFO ) ;
cout << "Size of REBARINFO is " << ri.cbSize << " bytes" << endl ;

SCROLLINFO si;
si.cbSize = sizeof ( SCROLLINFO ) ;
cout << "Size of SCROLLINFO is " << si.cbSize << " bytes" << endl ;

SERIALKEYS sk;
sk.cbSize = sizeof ( SERIALKEYS ) ;
cout << "Size of SERIALKEYS is " << sk.cbSize << " bytes" << endl ;

SHCREATEPROCESSINFOW scpi;
scpi.cbSize = sizeof ( SHCREATEPROCESSINFOW ) ;
cout << "Size of SHCREATEPROCESSINFOW is " << scpi.cbSize << " bytes" << endl;

SHELLEXECUTEINFO sei;
sei.cbSize = sizeof ( SHELLEXECUTEINFO ) ;
cout << "Size of SHELLEXECUTEINFO is " << sei.cbSize << " bytes" << endl;

SHQUERYRBINFO sqrbi;
sqrbi.cbSize = sizeof ( SHQUERYRBINFO ) ;
cout << "Size of SHQUERYRBINFO is " << sqrbi.cbSize << " bytes" << endl;

SOUNDSENTRY ss;
ss.cbSize = sizeof ( SOUNDSENTRY ) ;
cout << "Size of SOUNDSENTRY is " << ss.cbSize << " bytes" << endl;

SP_BACKUP_QUEUE_PARAMS spbqp ;
spbqp.cbSize = sizeof ( SP_BACKUP_QUEUE_PARAMS ) ;
cout << "Size of SP_BACKUP_QUEUE_PARAMS is " << spbqp.cbSize << " bytes" << endl;

SP_CLASSIMAGELIST_DATA spcild;
spcild.cbSize = sizeof ( SP_CLASSIMAGELIST_DATA ) ;
cout << "Size of SP_CLASSIMAGELIST_DATA is " << spcild.cbSize << " bytes" << endl;

SP_CLASSINSTALL_HEADER spcih;
spcih.cbSize = sizeof ( SP_CLASSINSTALL_HEADER ) ;
cout << "Size of SP_CLASSINSTALL_HEADER is " << spcih.cbSize << " bytes" << endl;

SP_DEVICE_INTERFACE_DATA spdid;
spdid.cbSize = sizeof ( SP_DEVICE_INTERFACE_DATA ) ;
cout << "Size of SP_DEVICE_INTERFACE_DATA is " << spdid.cbSize << " bytes" << endl;

SP_DEVICE_INTERFACE_DETAIL_DATA spdidd;
spdidd.cbSize = sizeof ( SP_DEVICE_INTERFACE_DETAIL_DATA ) ;
cout << "Size of SP_DEVICE_INTERFACE_DETIAL_DATA is " << spdidd.cbSize << " bytes" << endl;

SP_DEVINFO_DATA spdeid;
spdeid.cbSize = sizeof ( SP_DEVINFO_DATA ) ;
cout << "Size of SP_DEVINFO_DATA is " << spdeid.cbSize << " bytes" << endl;

SP_DEVINFO_LIST_DETAIL_DATA spdldd;
spdldd.cbSize = sizeof ( SP_DEVINFO_LIST_DETAIL_DATA ) ;
cout << "Size of SP_DEVINFO_LIST_DETAIL_DATA is " << spdldd.cbSize << " bytes" << endl;

SP_DRVINFO_DATA spdrid;
spdrid.cbSize = sizeof ( SP_DRVINFO_DATA ) ;
cout << "Size of SP_DRVINFO_DATA is " << spdrid.cbSize << " bytes" << endl;

SP_DRVINFO_DATA_V1 spdrid1;
spdrid1.cbSize = sizeof ( SP_DRVINFO_DATA_V1 ) ;
cout << "Size of SP_DRVINFO_DATA_V1 is " << spdrid1.cbSize << " bytes" << endl;

SP_DRVINFO_DATA_V2 spdrid2;
spdrid2.cbSize = sizeof ( SP_DRVINFO_DATA_V2 ) ;
cout << "Size of SP_DRVINFO_DATA_V2 is " << spdrid2.cbSize << " bytes" << endl;

SP_DRVINFO_DETAIL_DATA spdridd;
spdridd.cbSize = sizeof ( SP_DRVINFO_DETAIL_DATA ) ;
cout << "Size of SP_DRVINFO_DETAIL_DATA is " << spdridd.cbSize << " bytes" << endl;

SP_DEVINSTALL_PARAMS spdvip;
spdvip.cbSize = sizeof ( SP_DEVINSTALL_PARAMS ) ;
cout << "Size of SP_DEVINSTALL_PARAMS is " << spdvip.cbSize << " bytes" << endl;

SP_DRVINSTALL_PARAMS spdrip;
spdrip.cbSize = sizeof ( SP_DRVINSTALL_PARAMS ) ;
cout << "Size of SP_DRVINSTALL_PARAMS is " << spdrip.cbSize << " bytes" << endl;

SP_FILE_COPY_PARAMS spfcp;
spfcp.cbSize = sizeof ( SP_FILE_COPY_PARAMS ) ;
cout << "Size of SP_FILE_COPY_PARAMS is " << spfcp.cbSize << " bytes" << endl;

SP_ORIGINAL_FILE_INFO spofi;
spofi.cbSize = sizeof ( SP_ORIGINAL_FILE_INFO ) ;
cout << "Size of SP_ORIGINAL_FILE_INFO is " << spofi.cbSize << " bytes" << endl;

SP_PROPSHEETPAGE_REQUEST sppspr;
sppspr.cbSize = sizeof ( SP_PROPSHEETPAGE_REQUEST ) ;
cout << "Size of SP_PROPSHEETPAGE_REQUEST is " << sppspr.cbSize << " bytes" << endl;

STICKYKEYS stk;
stk.cbSize = sizeof ( STICKYKEYS ) ;
cout << "Size of STICKYKEYS is " << stk.cbSize << " bytes" << endl;

SYNCMGRHANDLERINFO smhi ;
smhi.cbSize = sizeof ( SYNCMGRHANDLERINFO ) ;
cout << "Size of SYNCMGRHANDLERINFO is " << smhi.cbSize << " bytes" << endl;

SYNCMGRITEM smi ;
smi.cbSize = sizeof ( SYNCMGRITEM ) ;
cout << "Size of SYNCMGRITEM is " << smi.cbSize << " bytes" << endl;

SYNCMGRLOGERRORINFO smlei ;
smlei.cbSize = sizeof ( SYNCMGRLOGERRORINFO ) ;
cout << "Size of SYNCMGRLOGERRORINFO is " << smlei.cbSize << " bytes" << endl;

SYNCMGRPROGRESSITEM smpi ;
smpi.cbSize = sizeof ( SYNCMGRPROGRESSITEM ) ;
cout << "Size of SYNCMGRPROGRESSITEM is " << smpi.cbSize << " bytes" << endl;

TBBUTTONINFO tbi;
tbi.cbSize = sizeof ( TBBUTTONINFO ) ;
cout << "Size of TBBUTTONINFO is " << tbi.cbSize << " bytes" << endl;

TOGGLEKEYS tk;
tk.cbSize = sizeof ( TOGGLEKEYS ) ;
cout << "Size of TOGGLEKEYS is " << tk.cbSize << " bytes" << endl;

TOOLINFO ti;
ti.cbSize = sizeof ( TOOLINFO ) ;
cout << "Size of TOOLINFO is " << ti.cbSize << " bytes" << endl;

TPMPARAMS tpm;
tpm.cbSize = sizeof ( TPMPARAMS ) ;
cout << "Size of TPMPARAMS is " << tpm.cbSize << " bytes" << endl ;

TRACKMOUSEEVENT tme;
tme.cbSize = sizeof ( TRACKMOUSEEVENT ) ;
cout << "Size of TRACKMOUSEEVENT is " << tme.cbSize << " bytes" << endl ;

WNDCLASSEX wc;
wc.cbSize = sizeof ( WNDCLASSEX ) ;
cout << "Size of WNDCLASSEX is " << wc.cbSize << " bytes" << endl ;

#if(WINVER >= 0x0500)

cout << endl << "Windows 98/ME/NT structures" << endl ;

ALTTABINFO ati;
ati.cbSize = sizeof ( ALTTABINFO ) ;
cout << "Size of ALTTABINFO is " << ati.cbSize << " bytes" << endl ;

COMBOBOXINFO cbi;
cbi.cbSize = sizeof ( COMBOBOXINFO ) ;
cout << "Size of COMBOBOXINFO is " << cbi.cbSize << " bytes" << endl ;

CURSORINFO ci;
ci.cbSize = sizeof ( CURSORINFO ) ;
cout << "Size of CURSORINFO is " << ci.cbSize << " bytes" << endl ;

FLASHWINFO fw;
fw.cbSize = sizeof ( FLASHWINFO ) ;
cout << "Size of FLASHWINFO is " << fw.cbSize << " bytes" << endl ;

MENUBARINFO mbi;
mbi.cbSize = sizeof ( MENUBARINFO ) ;
cout << "Size of MENUBARINFO is " << mbi.cbSize << " bytes" << endl ;

MENUINFO mi;
mi.cbSize = sizeof ( MENUINFO ) ;
cout << "Size of MENUINFO is " << mi.cbSize << " bytes" << endl ;

SCROLLBARINFO sbi;
sbi.cbSize = sizeof ( SCROLLBARINFO ) ;
cout << "Size of SCROLLBARINFO is " << sbi.cbSize << " bytes" << endl ;

TITLEBARINFO tlbi;
tlbi.cbSize = sizeof ( TITLEBARINFO ) ;
cout << "Size of TITLEBARINFO is " << tlbi.cbSize << " bytes" << endl;

WINDOWINFO wi;
wi.cbSize = sizeof ( WINDOWINFO ) ;
cout << "Size of WINDOWINFO is " << wi.cbSize << " bytes" << endl ;
#endif /* WINVER >= 0x0500 */

#if(_WIN32_WINNT >= 0x0500)

cout << endl << "Windows 2000 structures" << endl ;

LASTINPUTINFO lii;
lii.cbSize = sizeof ( LASTINPUTINFO ) ;
cout << "Size of LASTINPUTINFO is " << lii.cbSize << " bytes" << endl ;
#endif /* _WIN32_WINNT >= 0x0500 */

}