| #!/bin/bash | 
 |  | 
 | set -e | 
 |  | 
 | WINE_DIR=$1 | 
 |  | 
 | if test -z $WINE_DIR; then | 
 |     echo "Usage: wine-import.sh wine_dir" | 
 |     exit 1 | 
 | fi | 
 |  | 
 | import_header() { | 
 |     dstfile=$2/$1 | 
 |     srcfile=$WINE_DIR/include/$1 | 
 |     rm -f $dstfile | 
 |     unicode_fix= | 
 |     if test -n "$(grep WINELIB_NAME_AW\\\|DECL_WINELIB_TYPE_AW $srcfile)"; then | 
 |         unicode_fix="yes" | 
 |         echo '#include <_mingw_unicode.h>' >>$dstfile | 
 |     fi | 
 |     if test -n "$(grep -w INTERFACE $srcfile)"; then | 
 |         echo '#undef INTERFACE' >>$dstfile | 
 |     fi | 
 |     cat $srcfile >>$dstfile | 
 |     if test -n "$(grep WINELIB_NAME_AW\\\|DECL_WINELIB_TYPE_AW $srcfile)"; then | 
 |         sed -i 's/\bWINELIB_NAME_AW\b/__MINGW_NAME_AW/g' $dstfile | 
 |         sed -i 's/\bDECL_WINELIB_TYPE_AW\b/__MINGW_TYPEDEF_AW/g' $dstfile | 
 |     fi | 
 |     sed -i 's/\bBOOL    /WINBOOL /g' $dstfile | 
 |     sed -i 's/\bBOOL\b/WINBOOL/g' $dstfile | 
 |     sed -i 's/DECLSPEC_HIDDEN//g' $dstfile | 
 |     sed -i 's/\b__WINE_ALLOC_SIZE([0-9]) //g' $dstfile | 
 | } | 
 |  | 
 | import_idl() { | 
 |     dstfile=$2/$1 | 
 |     srcfile=$WINE_DIR/include/$1 | 
 |     cp $srcfile $dstfile | 
 |  | 
 |     # HACK: | 
 |     sed -i 's/cpp_quote\(.*\)\bBOOL\b/cpp_quote\1WINBOOL/' $dstfile | 
 |     sed -i 's/cpp_quote\(.*\)\bBOOL\b/cpp_quote\1WINBOOL/' $dstfile | 
 |     sed -i 's/cpp_quote\(.*\)\bBOOL\b/cpp_quote\1WINBOOL/' $dstfile | 
 | } | 
 |  | 
 | # headers | 
 | # Reverted: propkeydef.h, rpcsal.h | 
 | for f in \ | 
 | 	amaudio.h \ | 
 | 	audevcod.h \ | 
 | 	corerror.h \ | 
 | 	d2dbasetypes.h \ | 
 | 	d3d10_1shader.h \ | 
 | 	d3d10misc.h \ | 
 | 	d3d11shader.h \ | 
 | 	d3d8caps.h \ | 
 | 	d3d8.h \ | 
 | 	d3d8types.h \ | 
 | 	d3d9caps.h \ | 
 | 	d3d9.h \ | 
 | 	d3d9types.h \ | 
 | 	d3dcaps.h \ | 
 | 	d3dcompiler.h \ | 
 | 	d3d.h \ | 
 | 	d3dhal.h \ | 
 | 	d3drmdef.h \ | 
 | 	d3drm.h \ | 
 | 	d3drmobj.h \ | 
 | 	d3dtypes.h \ | 
 | 	d3dvec.inl \ | 
 | 	d3dx9anim.h \ | 
 | 	d3dx9core.h \ | 
 | 	d3dx9effect.h \ | 
 | 	d3dx9.h \ | 
 | 	d3dx9math.h \ | 
 | 	d3dx9math.inl \ | 
 | 	d3dx9mesh.h \ | 
 | 	d3dx9shader.h \ | 
 | 	d3dx9shape.h \ | 
 | 	d3dx9tex.h \ | 
 | 	d3dx9xof.h \ | 
 | 	devpkey.h \ | 
 | 	dls1.h \ | 
 | 	dls2.h \ | 
 | 	dmerror.h \ | 
 | 	dmo.h \ | 
 | 	dmoreg.h \ | 
 | 	dmort.h \ | 
 | 	dmplugin.h \ | 
 | 	dmusbuff.h \ | 
 | 	dmusicc.h \ | 
 | 	dmusicf.h \ | 
 | 	dmusici.h \ | 
 | 	dmusics.h \ | 
 | 	dpaddr.h \ | 
 | 	dplay8.h \ | 
 | 	dplay.h \ | 
 | 	dplobby8.h \ | 
 | 	dplobby.h \ | 
 | 	dpnathlp.h \ | 
 | 	dsconf.h \ | 
 | 	dshow.h \ | 
 | 	dvdmedia.h \ | 
 | 	dxdiag.h \ | 
 | 	dxerr8.h \ | 
 | 	dxerr9.h \ | 
 | 	dxfile.h \ | 
 | 	dxva.h \ | 
 | 	errors.h \ | 
 | 	evcode.h \ | 
 | 	exdispid.h \ | 
 | 	fontsub.h \ | 
 | 	mediaerr.h \ | 
 | 	mpeg2bits.h \ | 
 | 	mscat.h \ | 
 | 	msxml2did.h \ | 
 | 	msxml6did.h \ | 
 | 	propkey.h \ | 
 | 	propvarutil.h \ | 
 | 	t2embapi.h \ | 
 | 	uiautomationcoreapi.h \ | 
 | 	uiautomation.h \ | 
 | 	vfwmsgs.h \ | 
 | 	webservices.h \ | 
 | 	wia.h \ | 
 | 	winhttp.h \ | 
 | 	winineti.h \ | 
 | 	wmpids.h \ | 
 | 	x3daudio.h \ | 
 | 	xapofx.h \ | 
 | 	xinput.h; do | 
 |     import_header $f include | 
 | done | 
 |  | 
 | # IDLs | 
 | for f in \ | 
 | 	amstream \ | 
 | 	amvideo \ | 
 | 	asyncinfo \ | 
 | 	austream \ | 
 | 	bits \ | 
 | 	bits1_5 \ | 
 | 	bits2_0 \ | 
 | 	bits2_5 \ | 
 | 	bits3_0 \ | 
 | 	bits5_0 \ | 
 | 	ctfutb \ | 
 | 	ctxtcall \ | 
 | 	d3d10 \ | 
 | 	d3d10_1 \ | 
 | 	d3d10effect \ | 
 | 	d3d10sdklayers \ | 
 | 	d3d10shader \ | 
 | 	d3d11 \ | 
 | 	d3d11on12 \ | 
 | 	d3d11_1 \ | 
 | 	d3d11_2 \ | 
 | 	d3d11_3 \ | 
 | 	d3d11_4 \ | 
 | 	d3d11sdklayers \ | 
 | 	d3d12 \ | 
 | 	d3d12sdklayers \ | 
 | 	d3d12shader \ | 
 | 	d3d12video \ | 
 | 	d3dcommon \ | 
 | 	dcommon \ | 
 | 	ddstream \ | 
 | 	devicetopology \ | 
 | 	directmanipulation \ | 
 | 	downloadmgr \ | 
 | 	drmexternals \ | 
 | 	dvdif \ | 
 | 	dwrite \ | 
 | 	dwrite_1 \ | 
 | 	dwrite_2 \ | 
 | 	dwrite_3 \ | 
 | 	dxgi \ | 
 | 	dxgi1_2 \ | 
 | 	dxgi1_3 \ | 
 | 	dxgi1_4 \ | 
 | 	dxgi1_5 \ | 
 | 	dxgi1_6 \ | 
 | 	dxgicommon \ | 
 | 	dxgidebug \ | 
 | 	dxgiformat \ | 
 | 	dxgitype \ | 
 | 	dxva2api \ | 
 | 	dyngraph \ | 
 | 	endpointvolume \ | 
 | 	eventtoken \ | 
 | 	evr9 \ | 
 | 	exdisp \ | 
 | 	fusion \ | 
 | 	httprequest \ | 
 | 	icftypes \ | 
 | 	ivectorchangedeventargs \ | 
 | 	mediaobj \ | 
 | 	mfmediaengine \ | 
 | 	mfreadwrite \ | 
 | 	mftransform \ | 
 | 	mmdeviceapi \ | 
 | 	mmstream \ | 
 | 	mpeg2data \ | 
 | 	mpeg2structs \ | 
 | 	mscoree \ | 
 | 	msctf \ | 
 | 	msxml \ | 
 | 	msxml2 \ | 
 | 	msxml6 \ | 
 | 	mulres \ | 
 | 	netfw \ | 
 | 	netlistmgr \ | 
 | 	objectarray \ | 
 | 	optary \ | 
 | 	proofofpossessioncookieinfo \ | 
 | 	qedit \ | 
 | 	relogger \ | 
 | 	rtworkq \ | 
 | 	spatialaudioclient \ | 
 | 	taskschd \ | 
 | 	textstor \ | 
 | 	thumbcache \ | 
 | 	uiautomationclient \ | 
 | 	uiautomationcore \ | 
 | 	urlhist \ | 
 | 	vmr9 \ | 
 | 	weakreference \ | 
 | 	wia_lh \ | 
 | 	wia_xp \ | 
 | 	wincodec \ | 
 | 	wincodecsdk \ | 
 | 	windowscontracts \ | 
 | 	wmdrmsdk \ | 
 | 	wmp \ | 
 | 	wmprealestate \ | 
 | 	wmpservices \ | 
 | 	wmsbuffer \ | 
 | 	wmsdkidl \ | 
 | 	wmsecure \ | 
 | 	wpcapi \ | 
 | 	wuapi \ | 
 | 	xamlom \ | 
 | 	xapo \ | 
 | 	xaudio2 \ | 
 | 	xaudio2fx \ | 
 | 	xmldom \ | 
 | 	xmldso \ | 
 | 	xmllite; do | 
 |     import_idl $f.idl include | 
 | done | 
 |  | 
 | # Import all winrt IDLs | 
 | for f in $WINE_DIR/include/windows.*.idl; do | 
 |     import_idl $(basename $f) include | 
 | done | 
 |  | 
 | echo Import complete. You need to update headers generated from IDL files now: | 
 | echo '$ ./configure --with-widl --host=i686-w64-mingw32 && make && make distclean' | 
 |  |