#include <odin.h>
#include <odinwrap.h>
#include <os2sel.h>

#include <os2win.h>
#include <winreg.h>
#include <winnt.h>
#include <wincon.h>
#include <winthunk.h>
#include <winnls.h>
#include <ntddk.h>
#include <heapstring.h>

//#define NO_SHLWAPI_STREAM
#include "shlwapi.h"

#define DBGWRAP_MODULE "SHLWAPI"
#include <dbgwrap.h>



NODEF_DEBUGWRAP8(SHLWAPI_1)
NODEF_DEBUGWRAP8(SHLWAPI_2)
NODEF_DEBUGWRAP8(SHLWAPI_3)
NODEF_DEBUGWRAP8(SHLWAPI_4)
NODEF_DEBUGWRAP12(SHLWAPI_5)
NODEF_DEBUGWRAP12(SHLWAPI_6)
NODEF_DEBUGWRAP12(SHLWAPI_7)
NODEF_DEBUGWRAP8(SHLWAPI_8)
NODEF_DEBUGWRAP4(SHLWAPI_9)
NODEF_DEBUGWRAP8(SHLWAPI_10)
NODEF_DEBUGWRAP20(SHLWAPI_11)
NODEF_DEBUGWRAP8(SHLWAPI_12)
NODEF_DEBUGWRAP8(SHLWAPI_13)
NODEF_DEBUGWRAP8(SHLWAPI_14)
NODEF_DEBUGWRAP8(SHLWAPI_15)
NODEF_DEBUGWRAP16(SHLWAPI_16)
NODEF_DEBUGWRAP8(SHLWAPI_17)
NODEF_DEBUGWRAP8(SHLWAPI_18)
NODEF_DEBUGWRAP4(SHLWAPI_19)
NODEF_DEBUGWRAP8(SHLWAPI_20)
NODEF_DEBUGWRAP8(SHLWAPI_21)
NODEF_DEBUGWRAP8(SHLWAPI_22)
NODEF_DEBUGWRAP12(SHLWAPI_23)
NODEF_DEBUGWRAP12(SHLWAPI_24)
NODEF_DEBUGWRAP4(SHLWAPI_25)
NODEF_DEBUGWRAP4(SHLWAPI_26)
NODEF_DEBUGWRAP4(SHLWAPI_27)
NODEF_DEBUGWRAP4(SHLWAPI_28)
NODEF_DEBUGWRAP4(SHLWAPI_29)
NODEF_DEBUGWRAP4(SHLWAPI_30)
NODEF_DEBUGWRAP4(SHLWAPI_31)
NODEF_DEBUGWRAP4(SHLWAPI_32)
NODEF_DEBUGWRAP4(SHLWAPI_33)
NODEF_DEBUGWRAP4(SHLWAPI_34)
NODEF_DEBUGWRAP12(SHLWAPI_35)
NODEF_DEBUGWRAP16(SHLWAPI_36)
NODEF_DEBUGWRAP16(SHLWAPI_74)
NODEF_DEBUGWRAP12(SHLWAPI_151)
NODEF_DEBUGWRAP12(SHLWAPI_152)
NODEF_DEBUGWRAP12(SHLWAPI_153)
NODEF_DEBUGWRAP12(SHLWAPI_154)
NODEF_DEBUGWRAP8(SHLWAPI_155)
NODEF_DEBUGWRAP8(SHLWAPI_156)
NODEF_DEBUGWRAP8(SHLWAPI_158)
NODEF_DEBUGWRAP8(SHLWAPI_160)
NODEF_DEBUGWRAP8(SHLWAPI_162)
NODEF_DEBUGWRAP24(SHLWAPI_164)
NODEF_DEBUGWRAP16(SHLWAPI_165)
NODEF_DEBUGWRAP4(SHLWAPI_169)
NODEF_DEBUGWRAP4(SHLWAPI_170)
NODEF_DEBUGWRAP8(SHLWAPI_172)
NODEF_DEBUGWRAP8(SHLWAPI_174)
NODEF_DEBUGWRAP8(SHLWAPI_175)
NODEF_DEBUGWRAP16(SHLWAPI_176)
NODEF_DEBUGWRAP12(SHLWAPI_181)
NODEF_DEBUGWRAP4(SHLWAPI_183)
NODEF_DEBUGWRAP24(SHLWAPI_185)
NODEF_DEBUGWRAP24(SHLWAPI_191)
NODEF_DEBUGWRAP0(SHLWAPI_193)
NODEF_DEBUGWRAP12(SHLWAPI_197)
NODEF_DEBUGWRAP8(SHLWAPI_199)
NODEF_DEBUGWRAP24(SHLWAPI_205)
NODEF_DEBUGWRAP24(SHLWAPI_206)
NODEF_DEBUGWRAP20(SHLWAPI_208)
NODEF_DEBUGWRAP4(SHLWAPI_209)
NODEF_DEBUGWRAP12(SHLWAPI_210)
NODEF_DEBUGWRAP8(SHLWAPI_211)
NODEF_DEBUGWRAP12(SHLWAPI_215)
NODEF_DEBUGWRAP12(SHLWAPI_217)
NODEF_DEBUGWRAP16(SHLWAPI_218)
NODEF_DEBUGWRAP16(SHLWAPI_219)
NODEF_DEBUGWRAP4(SHLWAPI_222)
NODEF_DEBUGWRAP4(SHLWAPI_223)
NODEF_DEBUGWRAP4(SHLWAPI_236)
NODEF_DEBUGWRAP4(SHLWAPI_237)
NODEF_DEBUGWRAP12(SHLWAPI_239)
NODEF_DEBUGWRAP16(SHLWAPI_240)
NODEF_DEBUGWRAP20(SHLWAPI_243)
NODEF_DEBUGWRAP16(SHLWAPI_266)
NODEF_DEBUGWRAP16(SHLWAPI_267)
NODEF_DEBUGWRAP8(SHLWAPI_268)
NODEF_DEBUGWRAP0(SHLWAPI_276)
NODEF_DEBUGWRAP24(SHLWAPI_278)
NODEF_DEBUGWRAP12(SHLWAPI_289)
NODEF_DEBUGWRAP20(SHLWAPI_294)
NODEF_DEBUGWRAP20(SHLWAPI_313)
NODEF_DEBUGWRAP16(SHLWAPI_318)
NODEF_DEBUGWRAP8(SHLWAPI_320)
NODEF_DEBUGWRAP8(SHLWAPI_321)
NODEF_DEBUGWRAP4(SHLWAPI_322)
NODEF_DEBUGWRAP4(SHLWAPI_323)
NODEF_DEBUGWRAP4(SHLWAPI_333)
NODEF_DEBUGWRAP8(SHLWAPI_334)
NODEF_DEBUGWRAP4(SHLWAPI_335)
NODEF_DEBUGWRAP4(SHLWAPI_336)
NODEF_DEBUGWRAP20(SHLWAPI_337)
NODEF_DEBUGWRAP12(SHLWAPI_346)
NODEF_DEBUGWRAP8(SHLWAPI_350)
NODEF_DEBUGWRAP16(SHLWAPI_351)
NODEF_DEBUGWRAP16(SHLWAPI_352)
NODEF_DEBUGWRAP12(SHLWAPI_356)
NODEF_DEBUGWRAP20(SHLWAPI_357)
NODEF_DEBUGWRAP24(SHLWAPI_358)
NODEF_DEBUGWRAP12(SHLWAPI_364)
NODEF_DEBUGWRAP12(SHLWAPI_370)
NODEF_DEBUGWRAP0(SHLWAPI_376)
NODEF_DEBUGWRAP12(SHLWAPI_377)
NODEF_DEBUGWRAP12(SHLWAPI_378)
NODEF_DEBUGWRAP4(SHLWAPI_389)
NODEF_DEBUGWRAP8(SHLWAPI_390)
NODEF_DEBUGWRAP20(SHLWAPI_391)
NODEF_DEBUGWRAP4(SHLWAPI_401)
NODEF_DEBUGWRAP4(SHLWAPI_402)
NODEF_DEBUGWRAP4(SHLWAPI_403)
NODEF_DEBUGWRAP4(SHLWAPI_413)
NODEF_DEBUGWRAP4(SHLWAPI_418)
NODEF_DEBUGWRAP4(SHLWAPI_431)
NODEF_DEBUGWRAP8(SHLWAPI_436)
NODEF_DEBUGWRAP4(SHLWAPI_437)


NODEF_DEBUGWRAP8(GetMenuPosFromID)
DEBUGWRAP12(ColorHLSToRGB)

DEBUGWRAP8(ChrCmpIA)
DEBUGWRAP8(ChrCmpIW)
DEBUGWRAP16(ColorRGBToHLS)
NODEF_DEBUGWRAP4(SHLWAPI_DllGetVersion)
DEBUGWRAP16(HashData)
DEBUGWRAP4(PathAddBackslashA)
DEBUGWRAP4(PathAddBackslashW)
DEBUGWRAP8(PathAddExtensionA)
DEBUGWRAP8(PathAddExtensionW)
DEBUGWRAP8(PathAppendA)
DEBUGWRAP8(PathAppendW)
DEBUGWRAP8(PathBuildRootA)
DEBUGWRAP8(PathBuildRootW)
DEBUGWRAP8(PathCanonicalizeA)
DEBUGWRAP8(PathCanonicalizeW)
DEBUGWRAP12(PathCombineA)
DEBUGWRAP12(PathCombineW)
DEBUGWRAP12(PathCommonPrefixA)
DEBUGWRAP12(PathCommonPrefixW)
DEBUGWRAP12(PathCompactPathA)
DEBUGWRAP16(PathCompactPathExA)
DEBUGWRAP16(PathCompactPathExW)
DEBUGWRAP12(PathCompactPathW)
NODEF_DEBUGWRAP16(PathCreateFromUrlA)
NODEF_DEBUGWRAP16(PathCreateFromUrlW)
DEBUGWRAP4(PathFileExistsA)
DEBUGWRAP4(PathFileExistsW)
DEBUGWRAP4(PathFindExtensionA)
DEBUGWRAP4(PathFindExtensionW)
DEBUGWRAP4(PathFindFileNameA)
DEBUGWRAP4(PathFindFileNameW)
DEBUGWRAP4(PathFindNextComponentA)
DEBUGWRAP4(PathFindNextComponentW)
DEBUGWRAP8(PathFindOnPathA)
DEBUGWRAP8(PathFindOnPathW)
DEBUGWRAP4(PathGetArgsA)
DEBUGWRAP4(PathGetArgsW)
DEBUGWRAP4(PathGetCharTypeA)
DEBUGWRAP4(PathGetCharTypeW)
DEBUGWRAP4(PathGetDriveNumberA)
DEBUGWRAP4(PathGetDriveNumberW)
DEBUGWRAP8(PathIsContentTypeA)
DEBUGWRAP8(PathIsContentTypeW)
DEBUGWRAP4(PathIsDirectoryA)
DEBUGWRAP4(PathIsDirectoryW)
DEBUGWRAP4(PathIsDirectoryEmptyA)
DEBUGWRAP4(PathIsDirectoryEmptyW)
DEBUGWRAP4(PathIsFileSpecA)
DEBUGWRAP4(PathIsFileSpecW)
DEBUGWRAP8(PathIsPrefixA)
DEBUGWRAP8(PathIsPrefixW)
DEBUGWRAP4(PathIsRelativeA)
DEBUGWRAP4(PathIsRelativeW)
DEBUGWRAP4(PathIsRootA)
DEBUGWRAP4(PathIsRootW)
DEBUGWRAP8(PathIsSameRootA)
DEBUGWRAP8(PathIsSameRootW)
DEBUGWRAP8(PathIsSystemFolderA)
DEBUGWRAP8(PathIsSystemFolderW)
DEBUGWRAP4(PathIsUNCA)
DEBUGWRAP4(PathIsUNCServerA)
DEBUGWRAP4(PathIsUNCServerShareA)
DEBUGWRAP4(PathIsUNCServerShareW)
DEBUGWRAP4(PathIsUNCServerW)
DEBUGWRAP4(PathIsUNCW)
DEBUGWRAP4(PathIsURLA)
DEBUGWRAP4(PathIsURLW)
DEBUGWRAP4(PathMakePrettyA)
DEBUGWRAP4(PathMakePrettyW)
DEBUGWRAP4(PathMakeSystemFolderA)
DEBUGWRAP4(PathMakeSystemFolderW)
DEBUGWRAP8(PathMatchSpecA)
DEBUGWRAP8(PathMatchSpecW)
DEBUGWRAP4(PathParseIconLocationA)
DEBUGWRAP4(PathParseIconLocationW)
DEBUGWRAP4(PathQuoteSpacesA)
DEBUGWRAP4(PathQuoteSpacesW)
DEBUGWRAP20(PathRelativePathToA)
DEBUGWRAP20(PathRelativePathToW)
DEBUGWRAP4(PathRemoveArgsA)
DEBUGWRAP4(PathRemoveArgsW)
DEBUGWRAP4(PathRemoveBackslashA)
DEBUGWRAP4(PathRemoveBackslashW)
DEBUGWRAP4(PathRemoveBlanksA)
DEBUGWRAP4(PathRemoveBlanksW)
DEBUGWRAP4(PathRemoveExtensionA)
DEBUGWRAP4(PathRemoveExtensionW)
DEBUGWRAP4(PathRemoveFileSpecA)
DEBUGWRAP4(PathRemoveFileSpecW)
DEBUGWRAP8(PathRenameExtensionA)
DEBUGWRAP8(PathRenameExtensionW)
DEBUGWRAP12(PathSearchAndQualifyA)
DEBUGWRAP12(PathSearchAndQualifyW)
DEBUGWRAP12(PathSetDlgItemPathA)
DEBUGWRAP12(PathSetDlgItemPathW)
DEBUGWRAP4(PathSkipRootA)
DEBUGWRAP4(PathSkipRootW)
DEBUGWRAP4(PathStripPathA)
DEBUGWRAP4(PathStripPathW)
DEBUGWRAP4(PathStripToRootA)
DEBUGWRAP4(PathStripToRootW)
DEBUGWRAP4(PathUnmakeSystemFolderA)
DEBUGWRAP4(PathUnmakeSystemFolderW)
DEBUGWRAP4(PathUnquoteSpacesA)
DEBUGWRAP4(PathUnquoteSpacesW)
DEBUGWRAP8(SHAutoComplete)
DEBUGWRAP4(SHCreateShellPalette)
DEBUGWRAP8(SHDeleteEmptyKeyA)
DEBUGWRAP8(SHDeleteEmptyKeyW)
DEBUGWRAP8(SHDeleteKeyA)
DEBUGWRAP8(SHDeleteKeyW)
NODEF_DEBUGWRAP8(SHDeleteOrphanKeyA)
NODEF_DEBUGWRAP8(SHDeleteOrphanKeyW)
DEBUGWRAP12(SHDeleteValueA)
DEBUGWRAP12(SHDeleteValueW)
DEBUGWRAP16(SHEnumKeyExA)
DEBUGWRAP16(SHEnumKeyExW)
DEBUGWRAP28(SHEnumValueA)
DEBUGWRAP28(SHEnumValueW)
NODEF_DEBUGWRAP4(_SHGetInstanceExplorer)
NODEF_DEBUGWRAP8(SHGetInverseCMAP)
DEBUGWRAP24(SHGetValueA)
DEBUGWRAP24(SHGetValueW)
NODEF_DEBUGWRAP4(SHIsLowMemoryMachine)
NODEF_DEBUGWRAP16(SHOpenRegStreamA)
NODEF_DEBUGWRAP16(SHOpenRegStreamW)
DEBUGWRAP20(SHQueryInfoKeyA)
DEBUGWRAP20(SHQueryInfoKeyW)
DEBUGWRAP24(SHQueryValueExA)
DEBUGWRAP24(SHQueryValueExW)
DEBUGWRAP4(SHRegCloseUSKey)
DEBUGWRAP20(SHRegCreateUSKeyA)
DEBUGWRAP20(SHRegCreateUSKeyW)
DEBUGWRAP12(SHRegDeleteEmptyUSKeyA)
DEBUGWRAP12(SHRegDeleteEmptyUSKeyW)
NODEF_DEBUGWRAP12(SHRegDeleteUSKeyA)
NODEF_DEBUGWRAP12(SHRegDeleteUSKeyW)
DEBUGWRAP20(SHRegEnumUSKeyA)
DEBUGWRAP20(SHRegEnumUSKeyW)
DEBUGWRAP32(SHRegEnumUSValueA)
DEBUGWRAP32(SHRegEnumUSValueW)
DEBUGWRAP16(SHRegGetBoolUSValueA)
DEBUGWRAP16(SHRegGetBoolUSValueW)
DEBUGWRAP32(SHRegGetUSValueA)
DEBUGWRAP32(SHRegGetUSValueW)
DEBUGWRAP20(SHRegOpenUSKeyA)
DEBUGWRAP20(SHRegOpenUSKeyW)
DEBUGWRAP32(SHRegQueryUSValueA)
DEBUGWRAP32(SHRegQueryUSValueW)
DEBUGWRAP24(SHRegSetUSValueA)
DEBUGWRAP24(SHRegSetUSValueW)
DEBUGWRAP24(SHRegWriteUSValueA)
DEBUGWRAP24(SHRegWriteUSValueW)
DEBUGWRAP24(SHSetValueA)
DEBUGWRAP24(SHSetValueW)
DEBUGWRAP8(StrCSpnA)
DEBUGWRAP8(StrCSpnW)
DEBUGWRAP12(StrCatBuffA)
DEBUGWRAP12(StrCatBuffW)
DEBUGWRAP8(StrCatW)
DEBUGWRAP8(StrChrA)
DEBUGWRAP8(StrChrIA)
DEBUGWRAP8(StrChrIW)
DEBUGWRAP8(StrChrW)
DEBUGWRAP12(StrCmpNA)
DEBUGWRAP12(StrCmpNIA)
DEBUGWRAP12(StrCmpNIW)
DEBUGWRAP12(StrCmpNW)
DEBUGWRAP8(StrCpyW)
DEBUGWRAP4(StrDupA)
DEBUGWRAP4(StrDupW)
DEBUGWRAP12(StrFormatByteSizeA)
DEBUGWRAP12(StrFormatByteSizeW)
DEBUGWRAP16(StrFromTimeIntervalA)
DEBUGWRAP16(StrFromTimeIntervalW)
DEBUGWRAP12(StrNCatA)
DEBUGWRAP12(StrNCatW)
DEBUGWRAP8(StrPBrkA)
DEBUGWRAP8(StrPBrkW)
DEBUGWRAP12(StrRChrA)
DEBUGWRAP12(StrRChrIA)
DEBUGWRAP12(StrRChrIW)
DEBUGWRAP12(StrRChrW)
DEBUGWRAP12(StrRStrIA)
DEBUGWRAP12(StrRStrIW)
DEBUGWRAP16(StrRetToBufA)
DEBUGWRAP16(StrRetToBufW)
DEBUGWRAP8(StrSpnA)
DEBUGWRAP8(StrSpnW)
DEBUGWRAP8(StrStrA)
DEBUGWRAP8(StrStrIA)
DEBUGWRAP8(StrStrIW)
DEBUGWRAP8(StrStrW)
DEBUGWRAP4(StrToIntA)
DEBUGWRAP12(StrToIntExA)
DEBUGWRAP12(StrToIntExW)
DEBUGWRAP4(StrToIntW)
DEBUGWRAP8(StrTrimA)
DEBUGWRAP16(UrlApplySchemeA)
DEBUGWRAP16(UrlApplySchemeW)
DEBUGWRAP16(UrlCanonicalizeA)
DEBUGWRAP16(UrlCanonicalizeW)
DEBUGWRAP20(UrlCombineA)
DEBUGWRAP20(UrlCombineW)
DEBUGWRAP12(UrlCompareA)
DEBUGWRAP12(UrlCompareW)
DEBUGWRAP16(UrlCreateFromPathA)
DEBUGWRAP16(UrlCreateFromPathW)
DEBUGWRAP16(UrlEscapeA)
DEBUGWRAP16(UrlEscapeW)
DEBUGWRAP4(UrlGetLocationA)
DEBUGWRAP4(UrlGetLocationW)
DEBUGWRAP20(UrlGetPartA)
DEBUGWRAP20(UrlGetPartW)
DEBUGWRAP12(UrlHashA)
DEBUGWRAP12(UrlHashW)
DEBUGWRAP8(UrlIsA)
DEBUGWRAP4(UrlIsNoHistoryA)
DEBUGWRAP4(UrlIsNoHistoryW)
DEBUGWRAP4(UrlIsOpaqueA)
DEBUGWRAP4(UrlIsOpaqueW)
DEBUGWRAP8(UrlIsW)
DEBUGWRAP16(UrlUnescapeA)
DEBUGWRAP16(UrlUnescapeW)
DEBUGWRAP20(SHRegGetPathA)
DEBUGWRAP20(SHRegGetPathW)
DEBUGWRAP12(SHRegDeleteUSValueA)
DEBUGWRAP12(SHRegDeleteUSValueW)


DEBUGWRAP16(wvnsprintfA)
DEBUGWRAP16(wvnsprintfW)
DEBUGWRAP20(SHRegSetPathA)
DEBUGWRAP20(SHRegSetPathW)
NODEF_DEBUGWRAP4(SHGetThreadRef)
NODEF_DEBUGWRAP4(SHSetThreadRef)
NODEF_DEBUGWRAP4(SHRegDuplicateHKey)
DEBUGWRAP4(PathUndecorateA)
DEBUGWRAP4(PathUndecorateW)
DEBUGWRAP4(PathIsLFNFileSpecA)
DEBUGWRAP4(PathIsLFNFileSpecW)
DEBUGWRAP4(PathIsNetworkPathA)
DEBUGWRAP4(PathIsNetworkPathW)
DEBUGWRAP12(PathFindSuffixArrayA)
DEBUGWRAP12(PathFindSuffixArrayW)
