github.com/kbinani/win@v0.3.0/shlwapi.go (about)

     1  // This file was automatically generated by https://github.com/kbinani/win/blob/generator/internal/cmd/gen/gen.go
     2  // go run internal/cmd/gen/gen.go
     3  
     4  // +build windows
     5  
     6  package win
     7  
     8  import (
     9  	"syscall"
    10  	"unsafe"
    11  )
    12  
    13  var (
    14  	// Library
    15  	libshlwapi uintptr
    16  
    17  	// Functions
    18  	assocCreate                uintptr
    19  	assocGetPerceivedType      uintptr
    20  	assocIsDangerous           uintptr
    21  	assocQueryKey              uintptr
    22  	assocQueryStringByKey      uintptr
    23  	assocQueryString           uintptr
    24  	chrCmpI                    uintptr
    25  	colorAdjustLuma            uintptr
    26  	colorHLSToRGB              uintptr
    27  	colorRGBToHLS              uintptr
    28  	connectToConnectionPoint   uintptr
    29  	getAcceptLanguages         uintptr
    30  	getMenuPosFromID           uintptr
    31  	hashData                   uintptr
    32  	iStream_Reset              uintptr
    33  	iStream_Size               uintptr
    34  	iUnknown_AtomicRelease     uintptr
    35  	iUnknown_GetSite           uintptr
    36  	iUnknown_GetWindow         uintptr
    37  	iUnknown_QueryService      uintptr
    38  	iUnknown_Set               uintptr
    39  	iUnknown_SetSite           uintptr
    40  	intlStrEqWorker            uintptr
    41  	isCharSpace                uintptr
    42  	isInternetESCEnabled       uintptr
    43  	isOS                       uintptr
    44  	mLFreeLibrary              uintptr
    45  	mLLoadLibrary              uintptr
    46  	parseURL                   uintptr
    47  	pathAddBackslash           uintptr
    48  	pathAddExtension           uintptr
    49  	pathAppend                 uintptr
    50  	pathBuildRoot              uintptr
    51  	pathCanonicalize           uintptr
    52  	pathCombine                uintptr
    53  	pathCommonPrefix           uintptr
    54  	pathCompactPathEx          uintptr
    55  	pathCompactPath            uintptr
    56  	pathCreateFromUrlAlloc     uintptr
    57  	pathCreateFromUrl          uintptr
    58  	pathFileExists             uintptr
    59  	pathFindExtension          uintptr
    60  	pathFindFileName           uintptr
    61  	pathFindNextComponent      uintptr
    62  	pathFindOnPath             uintptr
    63  	pathFindSuffixArray        uintptr
    64  	pathGetArgs                uintptr
    65  	pathGetCharType            uintptr
    66  	pathGetDriveNumber         uintptr
    67  	pathIsContentType          uintptr
    68  	pathIsDirectoryEmpty       uintptr
    69  	pathIsDirectory            uintptr
    70  	pathIsFileSpec             uintptr
    71  	pathIsLFNFileSpec          uintptr
    72  	pathIsNetworkPath          uintptr
    73  	pathIsPrefix               uintptr
    74  	pathIsRelative             uintptr
    75  	pathIsRoot                 uintptr
    76  	pathIsSameRoot             uintptr
    77  	pathIsSystemFolder         uintptr
    78  	pathIsUNCServerShare       uintptr
    79  	pathIsUNCServer            uintptr
    80  	pathIsUNC                  uintptr
    81  	pathIsURL                  uintptr
    82  	pathMakePretty             uintptr
    83  	pathMakeSystemFolder       uintptr
    84  	pathMatchSpec              uintptr
    85  	pathParseIconLocation      uintptr
    86  	pathQuoteSpaces            uintptr
    87  	pathRelativePathTo         uintptr
    88  	pathRemoveArgs             uintptr
    89  	pathRemoveBackslash        uintptr
    90  	pathRemoveBlanks           uintptr
    91  	pathRemoveExtension        uintptr
    92  	pathRemoveFileSpec         uintptr
    93  	pathRenameExtension        uintptr
    94  	pathSearchAndQualify       uintptr
    95  	pathSetDlgItemPath         uintptr
    96  	pathSkipRoot               uintptr
    97  	pathStripPath              uintptr
    98  	pathStripToRoot            uintptr
    99  	pathUnExpandEnvStrings     uintptr
   100  	pathUndecorate             uintptr
   101  	pathUnmakeSystemFolder     uintptr
   102  	pathUnquoteSpaces          uintptr
   103  	qISearch                   uintptr
   104  	sHAllocShared              uintptr
   105  	sHAnsiToAnsi               uintptr
   106  	sHAnsiToUnicode            uintptr
   107  	sHAutoComplete             uintptr
   108  	sHCopyKey                  uintptr
   109  	sHCreateShellPalette       uintptr
   110  	sHCreateStreamOnFileEx     uintptr
   111  	sHCreateStreamOnFile       uintptr
   112  	sHCreateStreamWrapper      uintptr
   113  	sHCreateThread             uintptr
   114  	sHCreateThreadRef          uintptr
   115  	sHDeleteEmptyKey           uintptr
   116  	sHDeleteKey                uintptr
   117  	sHDeleteOrphanKey          uintptr
   118  	sHDeleteValue              uintptr
   119  	sHEnumKeyEx                uintptr
   120  	sHEnumValue                uintptr
   121  	sHFormatDateTime           uintptr
   122  	sHFreeShared               uintptr
   123  	sHGetInverseCMAP           uintptr
   124  	sHGetThreadRef             uintptr
   125  	sHGetValue                 uintptr
   126  	sHGetViewStatePropertyBag  uintptr
   127  	sHIsChildOrSelf            uintptr
   128  	sHIsLowMemoryMachine       uintptr
   129  	sHLoadIndirectString       uintptr
   130  	sHLockShared               uintptr
   131  	sHMessageBoxCheck          uintptr
   132  	sHQueryInfoKey             uintptr
   133  	sHQueryValueEx             uintptr
   134  	sHRegCloseUSKey            uintptr
   135  	sHRegCreateUSKey           uintptr
   136  	sHRegDeleteEmptyUSKey      uintptr
   137  	sHRegDeleteUSValue         uintptr
   138  	sHRegDuplicateHKey         uintptr
   139  	sHRegEnumUSKey             uintptr
   140  	sHRegEnumUSValue           uintptr
   141  	sHRegGetBoolUSValue        uintptr
   142  	sHRegGetIntW               uintptr
   143  	sHRegGetPath               uintptr
   144  	sHRegGetUSValue            uintptr
   145  	sHRegOpenUSKey             uintptr
   146  	sHRegQueryInfoUSKey        uintptr
   147  	sHRegQueryUSValue          uintptr
   148  	sHRegSetPath               uintptr
   149  	sHRegSetUSValue            uintptr
   150  	sHRegWriteUSValue          uintptr
   151  	sHRegisterValidateTemplate uintptr
   152  	sHReleaseThreadRef         uintptr
   153  	sHSendMessageBroadcast     uintptr
   154  	sHSetThreadRef             uintptr
   155  	sHSetValue                 uintptr
   156  	sHSkipJunction             uintptr
   157  	sHStrDup                   uintptr
   158  	sHStripMneumonic           uintptr
   159  	sHUnicodeToAnsi            uintptr
   160  	sHUnicodeToUnicode         uintptr
   161  	sHUnlockShared             uintptr
   162  	strCSpnI                   uintptr
   163  	strCSpn                    uintptr
   164  	strCatBuff                 uintptr
   165  	strCatChainW               uintptr
   166  	strCatW                    uintptr
   167  	strChrI                    uintptr
   168  	strChrNW                   uintptr
   169  	strChr                     uintptr
   170  	strCmpC                    uintptr
   171  	strCmpIC                   uintptr
   172  	strCmpIW                   uintptr
   173  	strCmpLogicalW             uintptr
   174  	strCmpNC                   uintptr
   175  	strCmpNIC                  uintptr
   176  	strCmpNI                   uintptr
   177  	strCmpN                    uintptr
   178  	strCmpW                    uintptr
   179  	strCpyNW                   uintptr
   180  	strCpyW                    uintptr
   181  	strDup                     uintptr
   182  	strFormatByteSize64A       uintptr
   183  	strFormatByteSize          uintptr
   184  	strFormatKBSize            uintptr
   185  	strFromTimeInterval        uintptr
   186  	strIsIntlEqual             uintptr
   187  	strNCat                    uintptr
   188  	strPBrk                    uintptr
   189  	strRChrI                   uintptr
   190  	strRChr                    uintptr
   191  	strRStrI                   uintptr
   192  	strRetToBSTR               uintptr
   193  	strRetToBuf                uintptr
   194  	strRetToStr                uintptr
   195  	strSpn                     uintptr
   196  	strStrI                    uintptr
   197  	strStrNIW                  uintptr
   198  	strStrNW                   uintptr
   199  	strStr                     uintptr
   200  	strToInt64Ex               uintptr
   201  	strToIntEx                 uintptr
   202  	strToInt                   uintptr
   203  	strTrim                    uintptr
   204  	urlApplyScheme             uintptr
   205  	urlCanonicalize            uintptr
   206  	urlCombine                 uintptr
   207  	urlCompare                 uintptr
   208  	urlCreateFromPath          uintptr
   209  	urlEscape                  uintptr
   210  	urlFixupW                  uintptr
   211  	urlGetLocation             uintptr
   212  	urlGetPart                 uintptr
   213  	urlHash                    uintptr
   214  	urlIsNoHistory             uintptr
   215  	urlIsOpaque                uintptr
   216  	urlIs                      uintptr
   217  	urlUnescape                uintptr
   218  	whichPlatform              uintptr
   219  )
   220  
   221  func init() {
   222  	// Library
   223  	libshlwapi = doLoadLibrary("shlwapi.dll")
   224  
   225  	// Functions
   226  	assocCreate = doGetProcAddress(libshlwapi, "AssocCreate")
   227  	assocGetPerceivedType = doGetProcAddress(libshlwapi, "AssocGetPerceivedType")
   228  	assocIsDangerous = doGetProcAddress(libshlwapi, "AssocIsDangerous")
   229  	assocQueryKey = doGetProcAddress(libshlwapi, "AssocQueryKeyW")
   230  	assocQueryStringByKey = doGetProcAddress(libshlwapi, "AssocQueryStringByKeyW")
   231  	assocQueryString = doGetProcAddress(libshlwapi, "AssocQueryStringW")
   232  	chrCmpI = doGetProcAddress(libshlwapi, "ChrCmpIW")
   233  	colorAdjustLuma = doGetProcAddress(libshlwapi, "ColorAdjustLuma")
   234  	colorHLSToRGB = doGetProcAddress(libshlwapi, "ColorHLSToRGB")
   235  	colorRGBToHLS = doGetProcAddress(libshlwapi, "ColorRGBToHLS")
   236  	connectToConnectionPoint = doGetProcAddress(libshlwapi, "ConnectToConnectionPoint")
   237  	getAcceptLanguages = doGetProcAddress(libshlwapi, "GetAcceptLanguagesW")
   238  	getMenuPosFromID = doGetProcAddress(libshlwapi, "GetMenuPosFromID")
   239  	hashData = doGetProcAddress(libshlwapi, "HashData")
   240  	iStream_Reset = doGetProcAddress(libshlwapi, "IStream_Reset")
   241  	iStream_Size = doGetProcAddress(libshlwapi, "IStream_Size")
   242  	iUnknown_AtomicRelease = doGetProcAddress(libshlwapi, "IUnknown_AtomicRelease")
   243  	iUnknown_GetSite = doGetProcAddress(libshlwapi, "IUnknown_GetSite")
   244  	iUnknown_GetWindow = doGetProcAddress(libshlwapi, "IUnknown_GetWindow")
   245  	iUnknown_QueryService = doGetProcAddress(libshlwapi, "IUnknown_QueryService")
   246  	iUnknown_Set = doGetProcAddress(libshlwapi, "IUnknown_Set")
   247  	iUnknown_SetSite = doGetProcAddress(libshlwapi, "IUnknown_SetSite")
   248  	intlStrEqWorker = doGetProcAddress(libshlwapi, "IntlStrEqWorkerW")
   249  	isCharSpace = doGetProcAddress(libshlwapi, "IsCharSpaceW")
   250  	isInternetESCEnabled = doGetProcAddress(libshlwapi, "IsInternetESCEnabled")
   251  	isOS = doGetProcAddress(libshlwapi, "IsOS")
   252  	mLFreeLibrary = doGetProcAddress(libshlwapi, "MLFreeLibrary")
   253  	mLLoadLibrary = doGetProcAddress(libshlwapi, "MLLoadLibraryW")
   254  	parseURL = doGetProcAddress(libshlwapi, "ParseURLW")
   255  	pathAddBackslash = doGetProcAddress(libshlwapi, "PathAddBackslashW")
   256  	pathAddExtension = doGetProcAddress(libshlwapi, "PathAddExtensionW")
   257  	pathAppend = doGetProcAddress(libshlwapi, "PathAppendW")
   258  	pathBuildRoot = doGetProcAddress(libshlwapi, "PathBuildRootW")
   259  	pathCanonicalize = doGetProcAddress(libshlwapi, "PathCanonicalizeW")
   260  	pathCombine = doGetProcAddress(libshlwapi, "PathCombineW")
   261  	pathCommonPrefix = doGetProcAddress(libshlwapi, "PathCommonPrefixW")
   262  	pathCompactPathEx = doGetProcAddress(libshlwapi, "PathCompactPathExW")
   263  	pathCompactPath = doGetProcAddress(libshlwapi, "PathCompactPathW")
   264  	pathCreateFromUrlAlloc = doGetProcAddress(libshlwapi, "PathCreateFromUrlAlloc")
   265  	pathCreateFromUrl = doGetProcAddress(libshlwapi, "PathCreateFromUrlW")
   266  	pathFileExists = doGetProcAddress(libshlwapi, "PathFileExistsW")
   267  	pathFindExtension = doGetProcAddress(libshlwapi, "PathFindExtensionW")
   268  	pathFindFileName = doGetProcAddress(libshlwapi, "PathFindFileNameW")
   269  	pathFindNextComponent = doGetProcAddress(libshlwapi, "PathFindNextComponentW")
   270  	pathFindOnPath = doGetProcAddress(libshlwapi, "PathFindOnPathW")
   271  	pathFindSuffixArray = doGetProcAddress(libshlwapi, "PathFindSuffixArrayW")
   272  	pathGetArgs = doGetProcAddress(libshlwapi, "PathGetArgsW")
   273  	pathGetCharType = doGetProcAddress(libshlwapi, "PathGetCharTypeW")
   274  	pathGetDriveNumber = doGetProcAddress(libshlwapi, "PathGetDriveNumberW")
   275  	pathIsContentType = doGetProcAddress(libshlwapi, "PathIsContentTypeW")
   276  	pathIsDirectoryEmpty = doGetProcAddress(libshlwapi, "PathIsDirectoryEmptyW")
   277  	pathIsDirectory = doGetProcAddress(libshlwapi, "PathIsDirectoryW")
   278  	pathIsFileSpec = doGetProcAddress(libshlwapi, "PathIsFileSpecW")
   279  	pathIsLFNFileSpec = doGetProcAddress(libshlwapi, "PathIsLFNFileSpecW")
   280  	pathIsNetworkPath = doGetProcAddress(libshlwapi, "PathIsNetworkPathW")
   281  	pathIsPrefix = doGetProcAddress(libshlwapi, "PathIsPrefixW")
   282  	pathIsRelative = doGetProcAddress(libshlwapi, "PathIsRelativeW")
   283  	pathIsRoot = doGetProcAddress(libshlwapi, "PathIsRootW")
   284  	pathIsSameRoot = doGetProcAddress(libshlwapi, "PathIsSameRootW")
   285  	pathIsSystemFolder = doGetProcAddress(libshlwapi, "PathIsSystemFolderW")
   286  	pathIsUNCServerShare = doGetProcAddress(libshlwapi, "PathIsUNCServerShareW")
   287  	pathIsUNCServer = doGetProcAddress(libshlwapi, "PathIsUNCServerW")
   288  	pathIsUNC = doGetProcAddress(libshlwapi, "PathIsUNCW")
   289  	pathIsURL = doGetProcAddress(libshlwapi, "PathIsURLW")
   290  	pathMakePretty = doGetProcAddress(libshlwapi, "PathMakePrettyW")
   291  	pathMakeSystemFolder = doGetProcAddress(libshlwapi, "PathMakeSystemFolderW")
   292  	pathMatchSpec = doGetProcAddress(libshlwapi, "PathMatchSpecW")
   293  	pathParseIconLocation = doGetProcAddress(libshlwapi, "PathParseIconLocationW")
   294  	pathQuoteSpaces = doGetProcAddress(libshlwapi, "PathQuoteSpacesW")
   295  	pathRelativePathTo = doGetProcAddress(libshlwapi, "PathRelativePathToW")
   296  	pathRemoveArgs = doGetProcAddress(libshlwapi, "PathRemoveArgsW")
   297  	pathRemoveBackslash = doGetProcAddress(libshlwapi, "PathRemoveBackslashW")
   298  	pathRemoveBlanks = doGetProcAddress(libshlwapi, "PathRemoveBlanksW")
   299  	pathRemoveExtension = doGetProcAddress(libshlwapi, "PathRemoveExtensionW")
   300  	pathRemoveFileSpec = doGetProcAddress(libshlwapi, "PathRemoveFileSpecW")
   301  	pathRenameExtension = doGetProcAddress(libshlwapi, "PathRenameExtensionW")
   302  	pathSearchAndQualify = doGetProcAddress(libshlwapi, "PathSearchAndQualifyW")
   303  	pathSetDlgItemPath = doGetProcAddress(libshlwapi, "PathSetDlgItemPathW")
   304  	pathSkipRoot = doGetProcAddress(libshlwapi, "PathSkipRootW")
   305  	pathStripPath = doGetProcAddress(libshlwapi, "PathStripPathW")
   306  	pathStripToRoot = doGetProcAddress(libshlwapi, "PathStripToRootW")
   307  	pathUnExpandEnvStrings = doGetProcAddress(libshlwapi, "PathUnExpandEnvStringsW")
   308  	pathUndecorate = doGetProcAddress(libshlwapi, "PathUndecorateW")
   309  	pathUnmakeSystemFolder = doGetProcAddress(libshlwapi, "PathUnmakeSystemFolderW")
   310  	pathUnquoteSpaces = doGetProcAddress(libshlwapi, "PathUnquoteSpacesW")
   311  	qISearch = doGetProcAddress(libshlwapi, "QISearch")
   312  	sHAllocShared = doGetProcAddress(libshlwapi, "SHAllocShared")
   313  	sHAnsiToAnsi = doGetProcAddress(libshlwapi, "SHAnsiToAnsi")
   314  	sHAnsiToUnicode = doGetProcAddress(libshlwapi, "SHAnsiToUnicode")
   315  	sHAutoComplete = doGetProcAddress(libshlwapi, "SHAutoComplete")
   316  	sHCopyKey = doGetProcAddress(libshlwapi, "SHCopyKeyW")
   317  	sHCreateShellPalette = doGetProcAddress(libshlwapi, "SHCreateShellPalette")
   318  	sHCreateStreamOnFileEx = doGetProcAddress(libshlwapi, "SHCreateStreamOnFileEx")
   319  	sHCreateStreamOnFile = doGetProcAddress(libshlwapi, "SHCreateStreamOnFileW")
   320  	sHCreateStreamWrapper = doGetProcAddress(libshlwapi, "SHCreateStreamWrapper")
   321  	sHCreateThread = doGetProcAddress(libshlwapi, "SHCreateThread")
   322  	sHCreateThreadRef = doGetProcAddress(libshlwapi, "SHCreateThreadRef")
   323  	sHDeleteEmptyKey = doGetProcAddress(libshlwapi, "SHDeleteEmptyKeyW")
   324  	sHDeleteKey = doGetProcAddress(libshlwapi, "SHDeleteKeyW")
   325  	sHDeleteOrphanKey = doGetProcAddress(libshlwapi, "SHDeleteOrphanKeyW")
   326  	sHDeleteValue = doGetProcAddress(libshlwapi, "SHDeleteValueW")
   327  	sHEnumKeyEx = doGetProcAddress(libshlwapi, "SHEnumKeyExW")
   328  	sHEnumValue = doGetProcAddress(libshlwapi, "SHEnumValueW")
   329  	sHFormatDateTime = doGetProcAddress(libshlwapi, "SHFormatDateTimeW")
   330  	sHFreeShared = doGetProcAddress(libshlwapi, "SHFreeShared")
   331  	sHGetInverseCMAP = doGetProcAddress(libshlwapi, "SHGetInverseCMAP")
   332  	sHGetThreadRef = doGetProcAddress(libshlwapi, "SHGetThreadRef")
   333  	sHGetValue = doGetProcAddress(libshlwapi, "SHGetValueW")
   334  	sHGetViewStatePropertyBag = doGetProcAddress(libshlwapi, "SHGetViewStatePropertyBag")
   335  	sHIsChildOrSelf = doGetProcAddress(libshlwapi, "SHIsChildOrSelf")
   336  	sHIsLowMemoryMachine = doGetProcAddress(libshlwapi, "SHIsLowMemoryMachine")
   337  	sHLoadIndirectString = doGetProcAddress(libshlwapi, "SHLoadIndirectString")
   338  	sHLockShared = doGetProcAddress(libshlwapi, "SHLockShared")
   339  	sHMessageBoxCheck = doGetProcAddress(libshlwapi, "SHMessageBoxCheckW")
   340  	sHQueryInfoKey = doGetProcAddress(libshlwapi, "SHQueryInfoKeyW")
   341  	sHQueryValueEx = doGetProcAddress(libshlwapi, "SHQueryValueExW")
   342  	sHRegCloseUSKey = doGetProcAddress(libshlwapi, "SHRegCloseUSKey")
   343  	sHRegCreateUSKey = doGetProcAddress(libshlwapi, "SHRegCreateUSKeyW")
   344  	sHRegDeleteEmptyUSKey = doGetProcAddress(libshlwapi, "SHRegDeleteEmptyUSKeyW")
   345  	sHRegDeleteUSValue = doGetProcAddress(libshlwapi, "SHRegDeleteUSValueW")
   346  	sHRegDuplicateHKey = doGetProcAddress(libshlwapi, "SHRegDuplicateHKey")
   347  	sHRegEnumUSKey = doGetProcAddress(libshlwapi, "SHRegEnumUSKeyW")
   348  	sHRegEnumUSValue = doGetProcAddress(libshlwapi, "SHRegEnumUSValueW")
   349  	sHRegGetBoolUSValue = doGetProcAddress(libshlwapi, "SHRegGetBoolUSValueW")
   350  	sHRegGetIntW = doGetProcAddress(libshlwapi, "SHRegGetIntW")
   351  	sHRegGetPath = doGetProcAddress(libshlwapi, "SHRegGetPathW")
   352  	sHRegGetUSValue = doGetProcAddress(libshlwapi, "SHRegGetUSValueW")
   353  	sHRegOpenUSKey = doGetProcAddress(libshlwapi, "SHRegOpenUSKeyW")
   354  	sHRegQueryInfoUSKey = doGetProcAddress(libshlwapi, "SHRegQueryInfoUSKeyW")
   355  	sHRegQueryUSValue = doGetProcAddress(libshlwapi, "SHRegQueryUSValueW")
   356  	sHRegSetPath = doGetProcAddress(libshlwapi, "SHRegSetPathW")
   357  	sHRegSetUSValue = doGetProcAddress(libshlwapi, "SHRegSetUSValueW")
   358  	sHRegWriteUSValue = doGetProcAddress(libshlwapi, "SHRegWriteUSValueW")
   359  	sHRegisterValidateTemplate = doGetProcAddress(libshlwapi, "SHRegisterValidateTemplate")
   360  	sHReleaseThreadRef = doGetProcAddress(libshlwapi, "SHReleaseThreadRef")
   361  	sHSendMessageBroadcast = doGetProcAddress(libshlwapi, "SHSendMessageBroadcastW")
   362  	sHSetThreadRef = doGetProcAddress(libshlwapi, "SHSetThreadRef")
   363  	sHSetValue = doGetProcAddress(libshlwapi, "SHSetValueW")
   364  	sHSkipJunction = doGetProcAddress(libshlwapi, "SHSkipJunction")
   365  	sHStrDup = doGetProcAddress(libshlwapi, "SHStrDupW")
   366  	sHStripMneumonic = doGetProcAddress(libshlwapi, "SHStripMneumonicW")
   367  	sHUnicodeToAnsi = doGetProcAddress(libshlwapi, "SHUnicodeToAnsi")
   368  	sHUnicodeToUnicode = doGetProcAddress(libshlwapi, "SHUnicodeToUnicode")
   369  	sHUnlockShared = doGetProcAddress(libshlwapi, "SHUnlockShared")
   370  	strCSpnI = doGetProcAddress(libshlwapi, "StrCSpnIW")
   371  	strCSpn = doGetProcAddress(libshlwapi, "StrCSpnW")
   372  	strCatBuff = doGetProcAddress(libshlwapi, "StrCatBuffW")
   373  	strCatChainW = doGetProcAddress(libshlwapi, "StrCatChainW")
   374  	strCatW = doGetProcAddress(libshlwapi, "StrCatW")
   375  	strChrI = doGetProcAddress(libshlwapi, "StrChrIW")
   376  	strChrNW = doGetProcAddress(libshlwapi, "StrChrNW")
   377  	strChr = doGetProcAddress(libshlwapi, "StrChrW")
   378  	strCmpC = doGetProcAddress(libshlwapi, "StrCmpCW")
   379  	strCmpIC = doGetProcAddress(libshlwapi, "StrCmpICW")
   380  	strCmpIW = doGetProcAddress(libshlwapi, "StrCmpIW")
   381  	strCmpLogicalW = doGetProcAddress(libshlwapi, "StrCmpLogicalW")
   382  	strCmpNC = doGetProcAddress(libshlwapi, "StrCmpNCW")
   383  	strCmpNIC = doGetProcAddress(libshlwapi, "StrCmpNICW")
   384  	strCmpNI = doGetProcAddress(libshlwapi, "StrCmpNIW")
   385  	strCmpN = doGetProcAddress(libshlwapi, "StrCmpNW")
   386  	strCmpW = doGetProcAddress(libshlwapi, "StrCmpW")
   387  	strCpyNW = doGetProcAddress(libshlwapi, "StrCpyNW")
   388  	strCpyW = doGetProcAddress(libshlwapi, "StrCpyW")
   389  	strDup = doGetProcAddress(libshlwapi, "StrDupW")
   390  	strFormatByteSize64A = doGetProcAddress(libshlwapi, "StrFormatByteSize64A")
   391  	strFormatByteSize = doGetProcAddress(libshlwapi, "StrFormatByteSizeW")
   392  	strFormatKBSize = doGetProcAddress(libshlwapi, "StrFormatKBSizeW")
   393  	strFromTimeInterval = doGetProcAddress(libshlwapi, "StrFromTimeIntervalW")
   394  	strIsIntlEqual = doGetProcAddress(libshlwapi, "StrIsIntlEqualW")
   395  	strNCat = doGetProcAddress(libshlwapi, "StrNCatW")
   396  	strPBrk = doGetProcAddress(libshlwapi, "StrPBrkW")
   397  	strRChrI = doGetProcAddress(libshlwapi, "StrRChrIW")
   398  	strRChr = doGetProcAddress(libshlwapi, "StrRChrW")
   399  	strRStrI = doGetProcAddress(libshlwapi, "StrRStrIW")
   400  	strRetToBSTR = doGetProcAddress(libshlwapi, "StrRetToBSTR")
   401  	strRetToBuf = doGetProcAddress(libshlwapi, "StrRetToBufW")
   402  	strRetToStr = doGetProcAddress(libshlwapi, "StrRetToStrW")
   403  	strSpn = doGetProcAddress(libshlwapi, "StrSpnW")
   404  	strStrI = doGetProcAddress(libshlwapi, "StrStrIW")
   405  	strStrNIW = doGetProcAddress(libshlwapi, "StrStrNIW")
   406  	strStrNW = doGetProcAddress(libshlwapi, "StrStrNW")
   407  	strStr = doGetProcAddress(libshlwapi, "StrStrW")
   408  	strToInt64Ex = doGetProcAddress(libshlwapi, "StrToInt64ExW")
   409  	strToIntEx = doGetProcAddress(libshlwapi, "StrToIntExW")
   410  	strToInt = doGetProcAddress(libshlwapi, "StrToIntW")
   411  	strTrim = doGetProcAddress(libshlwapi, "StrTrimW")
   412  	urlApplyScheme = doGetProcAddress(libshlwapi, "UrlApplySchemeW")
   413  	urlCanonicalize = doGetProcAddress(libshlwapi, "UrlCanonicalizeW")
   414  	urlCombine = doGetProcAddress(libshlwapi, "UrlCombineW")
   415  	urlCompare = doGetProcAddress(libshlwapi, "UrlCompareW")
   416  	urlCreateFromPath = doGetProcAddress(libshlwapi, "UrlCreateFromPathW")
   417  	urlEscape = doGetProcAddress(libshlwapi, "UrlEscapeW")
   418  	urlFixupW = doGetProcAddress(libshlwapi, "UrlFixupW")
   419  	urlGetLocation = doGetProcAddress(libshlwapi, "UrlGetLocationW")
   420  	urlGetPart = doGetProcAddress(libshlwapi, "UrlGetPartW")
   421  	urlHash = doGetProcAddress(libshlwapi, "UrlHashW")
   422  	urlIsNoHistory = doGetProcAddress(libshlwapi, "UrlIsNoHistoryW")
   423  	urlIsOpaque = doGetProcAddress(libshlwapi, "UrlIsOpaqueW")
   424  	urlIs = doGetProcAddress(libshlwapi, "UrlIsW")
   425  	urlUnescape = doGetProcAddress(libshlwapi, "UrlUnescapeW")
   426  	whichPlatform = doGetProcAddress(libshlwapi, "WhichPlatform")
   427  }
   428  
   429  func AssocCreate(clsid CLSID, refiid REFIID, lpInterface uintptr) HRESULT {
   430  	ret1 := syscall6(assocCreate, 6,
   431  		uintptr(clsid.Data1),
   432  		uintptr((uint32(clsid.Data2)<<16)|uint32(clsid.Data3)),
   433  		uintptr((uint32(clsid.Data4[0])<<24)|(uint32(clsid.Data4[1]<<16))|(uint32(clsid.Data4[2]<<8))|uint32(clsid.Data4[3])),
   434  		uintptr((uint32(clsid.Data4[4])<<24)|(uint32(clsid.Data4[5]<<16))|(uint32(clsid.Data4[6]<<8))|uint32(clsid.Data4[7])),
   435  		uintptr(unsafe.Pointer(refiid)),
   436  		lpInterface)
   437  	return HRESULT(ret1)
   438  }
   439  
   440  func AssocGetPerceivedType(lpszExt string, lpType *PERCEIVED, lpFlag *int32, lppszType *LPWSTR) HRESULT {
   441  	lpszExtStr := unicode16FromString(lpszExt)
   442  	ret1 := syscall6(assocGetPerceivedType, 4,
   443  		uintptr(unsafe.Pointer(&lpszExtStr[0])),
   444  		uintptr(unsafe.Pointer(lpType)),
   445  		uintptr(unsafe.Pointer(lpFlag)),
   446  		uintptr(unsafe.Pointer(lppszType)),
   447  		0,
   448  		0)
   449  	return HRESULT(ret1)
   450  }
   451  
   452  func AssocIsDangerous(lpszAssoc string) bool {
   453  	lpszAssocStr := unicode16FromString(lpszAssoc)
   454  	ret1 := syscall3(assocIsDangerous, 1,
   455  		uintptr(unsafe.Pointer(&lpszAssocStr[0])),
   456  		0,
   457  		0)
   458  	return ret1 != 0
   459  }
   460  
   461  func AssocQueryKey(cfFlags ASSOCF, assockey ASSOCKEY, pszAssoc string, pszExtra string, phkeyOut *HKEY) HRESULT {
   462  	pszAssocStr := unicode16FromString(pszAssoc)
   463  	pszExtraStr := unicode16FromString(pszExtra)
   464  	ret1 := syscall6(assocQueryKey, 5,
   465  		uintptr(cfFlags),
   466  		uintptr(assockey),
   467  		uintptr(unsafe.Pointer(&pszAssocStr[0])),
   468  		uintptr(unsafe.Pointer(&pszExtraStr[0])),
   469  		uintptr(unsafe.Pointer(phkeyOut)),
   470  		0)
   471  	return HRESULT(ret1)
   472  }
   473  
   474  func AssocQueryStringByKey(cfFlags ASSOCF, str ASSOCSTR, hkAssoc HKEY, pszExtra string, pszOut LPWSTR, pcchOut *uint32) HRESULT {
   475  	pszExtraStr := unicode16FromString(pszExtra)
   476  	ret1 := syscall6(assocQueryStringByKey, 6,
   477  		uintptr(cfFlags),
   478  		uintptr(str),
   479  		uintptr(hkAssoc),
   480  		uintptr(unsafe.Pointer(&pszExtraStr[0])),
   481  		uintptr(unsafe.Pointer(pszOut)),
   482  		uintptr(unsafe.Pointer(pcchOut)))
   483  	return HRESULT(ret1)
   484  }
   485  
   486  func AssocQueryString(cfFlags ASSOCF, str ASSOCSTR, pszAssoc string, pszExtra string, pszOut LPWSTR, pcchOut *uint32) HRESULT {
   487  	pszAssocStr := unicode16FromString(pszAssoc)
   488  	pszExtraStr := unicode16FromString(pszExtra)
   489  	ret1 := syscall6(assocQueryString, 6,
   490  		uintptr(cfFlags),
   491  		uintptr(str),
   492  		uintptr(unsafe.Pointer(&pszAssocStr[0])),
   493  		uintptr(unsafe.Pointer(&pszExtraStr[0])),
   494  		uintptr(unsafe.Pointer(pszOut)),
   495  		uintptr(unsafe.Pointer(pcchOut)))
   496  	return HRESULT(ret1)
   497  }
   498  
   499  func ChrCmpI(ch1 WCHAR, ch2 WCHAR) bool {
   500  	ret1 := syscall3(chrCmpI, 2,
   501  		uintptr(ch1),
   502  		uintptr(ch2),
   503  		0)
   504  	return ret1 != 0
   505  }
   506  
   507  func ColorAdjustLuma(cRGB COLORREF, dwLuma int32, bUnknown bool) COLORREF {
   508  	ret1 := syscall3(colorAdjustLuma, 3,
   509  		uintptr(cRGB),
   510  		uintptr(dwLuma),
   511  		getUintptrFromBool(bUnknown))
   512  	return COLORREF(ret1)
   513  }
   514  
   515  func ColorHLSToRGB(wHue WORD, wLuminosity WORD, wSaturation WORD) COLORREF {
   516  	ret1 := syscall3(colorHLSToRGB, 3,
   517  		uintptr(wHue),
   518  		uintptr(wLuminosity),
   519  		uintptr(wSaturation))
   520  	return COLORREF(ret1)
   521  }
   522  
   523  func ColorRGBToHLS(cRGB COLORREF, pwHue *uint16, pwLuminance *uint16, pwSaturation *uint16) {
   524  	syscall6(colorRGBToHLS, 4,
   525  		uintptr(cRGB),
   526  		uintptr(unsafe.Pointer(pwHue)),
   527  		uintptr(unsafe.Pointer(pwLuminance)),
   528  		uintptr(unsafe.Pointer(pwSaturation)),
   529  		0,
   530  		0)
   531  }
   532  
   533  func ConnectToConnectionPoint(lpUnkSink *IUnknown, riid REFIID, fConnect bool, lpUnknown *IUnknown, lpCookie *uint32, lppCP **IConnectionPoint) HRESULT {
   534  	ret1 := syscall6(connectToConnectionPoint, 6,
   535  		uintptr(unsafe.Pointer(lpUnkSink)),
   536  		uintptr(unsafe.Pointer(riid)),
   537  		getUintptrFromBool(fConnect),
   538  		uintptr(unsafe.Pointer(lpUnknown)),
   539  		uintptr(unsafe.Pointer(lpCookie)),
   540  		uintptr(unsafe.Pointer(lppCP)))
   541  	return HRESULT(ret1)
   542  }
   543  
   544  func GetAcceptLanguages(langbuf LPWSTR, buflen *uint32) HRESULT {
   545  	ret1 := syscall3(getAcceptLanguages, 2,
   546  		uintptr(unsafe.Pointer(langbuf)),
   547  		uintptr(unsafe.Pointer(buflen)),
   548  		0)
   549  	return HRESULT(ret1)
   550  }
   551  
   552  func GetMenuPosFromID(hMenu HMENU, wID UINT) INT {
   553  	ret1 := syscall3(getMenuPosFromID, 2,
   554  		uintptr(hMenu),
   555  		uintptr(wID),
   556  		0)
   557  	return INT(ret1)
   558  }
   559  
   560  func HashData(lpSrc /*const*/ *byte, nSrcLen DWORD, lpDest *byte, nDestLen DWORD) HRESULT {
   561  	ret1 := syscall6(hashData, 4,
   562  		uintptr(unsafe.Pointer(lpSrc)),
   563  		uintptr(nSrcLen),
   564  		uintptr(unsafe.Pointer(lpDest)),
   565  		uintptr(nDestLen),
   566  		0,
   567  		0)
   568  	return HRESULT(ret1)
   569  }
   570  
   571  func IStream_Reset(lpStream *IStream) HRESULT {
   572  	ret1 := syscall3(iStream_Reset, 1,
   573  		uintptr(unsafe.Pointer(lpStream)),
   574  		0,
   575  		0)
   576  	return HRESULT(ret1)
   577  }
   578  
   579  func IStream_Size(lpStream *IStream, lpulSize *ULARGE_INTEGER) HRESULT {
   580  	ret1 := syscall3(iStream_Size, 2,
   581  		uintptr(unsafe.Pointer(lpStream)),
   582  		uintptr(unsafe.Pointer(lpulSize)),
   583  		0)
   584  	return HRESULT(ret1)
   585  }
   586  
   587  func IUnknown_AtomicRelease(lpUnknown **IUnknown) {
   588  	syscall3(iUnknown_AtomicRelease, 1,
   589  		uintptr(unsafe.Pointer(lpUnknown)),
   590  		0,
   591  		0)
   592  }
   593  
   594  func IUnknown_GetSite(lpUnknown LPUNKNOWN, iid REFIID, lppSite *PVOID) HRESULT {
   595  	ret1 := syscall3(iUnknown_GetSite, 3,
   596  		uintptr(unsafe.Pointer(lpUnknown)),
   597  		uintptr(unsafe.Pointer(iid)),
   598  		uintptr(unsafe.Pointer(lppSite)))
   599  	return HRESULT(ret1)
   600  }
   601  
   602  func IUnknown_GetWindow(lpUnknown *IUnknown, lphWnd *HWND) HRESULT {
   603  	ret1 := syscall3(iUnknown_GetWindow, 2,
   604  		uintptr(unsafe.Pointer(lpUnknown)),
   605  		uintptr(unsafe.Pointer(lphWnd)),
   606  		0)
   607  	return HRESULT(ret1)
   608  }
   609  
   610  func IUnknown_QueryService(unnamed0 *IUnknown, unnamed1 REFGUID, unnamed2 REFIID, unnamed3 *LPVOID) HRESULT {
   611  	ret1 := syscall6(iUnknown_QueryService, 4,
   612  		uintptr(unsafe.Pointer(unnamed0)),
   613  		uintptr(unsafe.Pointer(unnamed1)),
   614  		uintptr(unsafe.Pointer(unnamed2)),
   615  		uintptr(unsafe.Pointer(unnamed3)),
   616  		0,
   617  		0)
   618  	return HRESULT(ret1)
   619  }
   620  
   621  func IUnknown_Set(lppDest **IUnknown, lpUnknown *IUnknown) {
   622  	syscall3(iUnknown_Set, 2,
   623  		uintptr(unsafe.Pointer(lppDest)),
   624  		uintptr(unsafe.Pointer(lpUnknown)),
   625  		0)
   626  }
   627  
   628  func IUnknown_SetSite(obj *IUnknown, site *IUnknown) HRESULT {
   629  	ret1 := syscall3(iUnknown_SetSite, 2,
   630  		uintptr(unsafe.Pointer(obj)),
   631  		uintptr(unsafe.Pointer(site)),
   632  		0)
   633  	return HRESULT(ret1)
   634  }
   635  
   636  func IntlStrEqWorker(bCase bool, lpszStr string, lpszComp string, iLen int32) bool {
   637  	lpszStrStr := unicode16FromString(lpszStr)
   638  	lpszCompStr := unicode16FromString(lpszComp)
   639  	ret1 := syscall6(intlStrEqWorker, 4,
   640  		getUintptrFromBool(bCase),
   641  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
   642  		uintptr(unsafe.Pointer(&lpszCompStr[0])),
   643  		uintptr(iLen),
   644  		0,
   645  		0)
   646  	return ret1 != 0
   647  }
   648  
   649  func IsCharSpace(wc WCHAR) bool {
   650  	ret1 := syscall3(isCharSpace, 1,
   651  		uintptr(wc),
   652  		0,
   653  		0)
   654  	return ret1 != 0
   655  }
   656  
   657  func IsInternetESCEnabled() bool {
   658  	ret1 := syscall3(isInternetESCEnabled, 0,
   659  		0,
   660  		0,
   661  		0)
   662  	return ret1 != 0
   663  }
   664  
   665  func IsOS(feature DWORD) bool {
   666  	ret1 := syscall3(isOS, 1,
   667  		uintptr(feature),
   668  		0,
   669  		0)
   670  	return ret1 != 0
   671  }
   672  
   673  func MLFreeLibrary(hModule HMODULE) bool {
   674  	ret1 := syscall3(mLFreeLibrary, 1,
   675  		uintptr(hModule),
   676  		0,
   677  		0)
   678  	return ret1 != 0
   679  }
   680  
   681  func MLLoadLibrary(new_mod string, inst_hwnd HMODULE, dwCrossCodePage DWORD) HMODULE {
   682  	new_modStr := unicode16FromString(new_mod)
   683  	ret1 := syscall3(mLLoadLibrary, 3,
   684  		uintptr(unsafe.Pointer(&new_modStr[0])),
   685  		uintptr(inst_hwnd),
   686  		uintptr(dwCrossCodePage))
   687  	return HMODULE(ret1)
   688  }
   689  
   690  func ParseURL(x string, y *PARSEDURL) HRESULT {
   691  	xStr := unicode16FromString(x)
   692  	ret1 := syscall3(parseURL, 2,
   693  		uintptr(unsafe.Pointer(&xStr[0])),
   694  		uintptr(unsafe.Pointer(y)),
   695  		0)
   696  	return HRESULT(ret1)
   697  }
   698  
   699  func PathAddBackslash(lpszPath LPWSTR) LPWSTR {
   700  	ret1 := syscall3(pathAddBackslash, 1,
   701  		uintptr(unsafe.Pointer(lpszPath)),
   702  		0,
   703  		0)
   704  	return (LPWSTR)(unsafe.Pointer(ret1))
   705  }
   706  
   707  func PathAddExtension(lpszPath LPWSTR, lpszExtension string) bool {
   708  	lpszExtensionStr := unicode16FromString(lpszExtension)
   709  	ret1 := syscall3(pathAddExtension, 2,
   710  		uintptr(unsafe.Pointer(lpszPath)),
   711  		uintptr(unsafe.Pointer(&lpszExtensionStr[0])),
   712  		0)
   713  	return ret1 != 0
   714  }
   715  
   716  func PathAppend(lpszPath LPWSTR, lpszAppend string) bool {
   717  	lpszAppendStr := unicode16FromString(lpszAppend)
   718  	ret1 := syscall3(pathAppend, 2,
   719  		uintptr(unsafe.Pointer(lpszPath)),
   720  		uintptr(unsafe.Pointer(&lpszAppendStr[0])),
   721  		0)
   722  	return ret1 != 0
   723  }
   724  
   725  func PathBuildRoot(lpszPath LPWSTR, drive int32) LPWSTR {
   726  	ret1 := syscall3(pathBuildRoot, 2,
   727  		uintptr(unsafe.Pointer(lpszPath)),
   728  		uintptr(drive),
   729  		0)
   730  	return (LPWSTR)(unsafe.Pointer(ret1))
   731  }
   732  
   733  func PathCanonicalize(lpszBuf LPWSTR, lpszPath string) bool {
   734  	lpszPathStr := unicode16FromString(lpszPath)
   735  	ret1 := syscall3(pathCanonicalize, 2,
   736  		uintptr(unsafe.Pointer(lpszBuf)),
   737  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   738  		0)
   739  	return ret1 != 0
   740  }
   741  
   742  func PathCombine(lpszDest LPWSTR, lpszDir string, lpszFile string) LPWSTR {
   743  	lpszDirStr := unicode16FromString(lpszDir)
   744  	lpszFileStr := unicode16FromString(lpszFile)
   745  	ret1 := syscall3(pathCombine, 3,
   746  		uintptr(unsafe.Pointer(lpszDest)),
   747  		uintptr(unsafe.Pointer(&lpszDirStr[0])),
   748  		uintptr(unsafe.Pointer(&lpszFileStr[0])))
   749  	return (LPWSTR)(unsafe.Pointer(ret1))
   750  }
   751  
   752  func PathCommonPrefix(lpszFile1 string, lpszFile2 string, achPath LPWSTR) int32 {
   753  	lpszFile1Str := unicode16FromString(lpszFile1)
   754  	lpszFile2Str := unicode16FromString(lpszFile2)
   755  	ret1 := syscall3(pathCommonPrefix, 3,
   756  		uintptr(unsafe.Pointer(&lpszFile1Str[0])),
   757  		uintptr(unsafe.Pointer(&lpszFile2Str[0])),
   758  		uintptr(unsafe.Pointer(achPath)))
   759  	return int32(ret1)
   760  }
   761  
   762  func PathCompactPathEx(lpszDest LPWSTR, lpszPath string, cchMax UINT, dwFlags DWORD) bool {
   763  	lpszPathStr := unicode16FromString(lpszPath)
   764  	ret1 := syscall6(pathCompactPathEx, 4,
   765  		uintptr(unsafe.Pointer(lpszDest)),
   766  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   767  		uintptr(cchMax),
   768  		uintptr(dwFlags),
   769  		0,
   770  		0)
   771  	return ret1 != 0
   772  }
   773  
   774  func PathCompactPath(hDC HDC, lpszPath LPWSTR, dx UINT) bool {
   775  	ret1 := syscall3(pathCompactPath, 3,
   776  		uintptr(hDC),
   777  		uintptr(unsafe.Pointer(lpszPath)),
   778  		uintptr(dx))
   779  	return ret1 != 0
   780  }
   781  
   782  func PathCreateFromUrlAlloc(pszUrl string, pszPath *LPWSTR, dwReserved DWORD) HRESULT {
   783  	pszUrlStr := unicode16FromString(pszUrl)
   784  	ret1 := syscall3(pathCreateFromUrlAlloc, 3,
   785  		uintptr(unsafe.Pointer(&pszUrlStr[0])),
   786  		uintptr(unsafe.Pointer(pszPath)),
   787  		uintptr(dwReserved))
   788  	return HRESULT(ret1)
   789  }
   790  
   791  func PathCreateFromUrl(pszUrl string, pszPath LPWSTR, pcchPath *uint32, dwReserved DWORD) HRESULT {
   792  	pszUrlStr := unicode16FromString(pszUrl)
   793  	ret1 := syscall6(pathCreateFromUrl, 4,
   794  		uintptr(unsafe.Pointer(&pszUrlStr[0])),
   795  		uintptr(unsafe.Pointer(pszPath)),
   796  		uintptr(unsafe.Pointer(pcchPath)),
   797  		uintptr(dwReserved),
   798  		0,
   799  		0)
   800  	return HRESULT(ret1)
   801  }
   802  
   803  func PathFileExists(lpszPath string) bool {
   804  	lpszPathStr := unicode16FromString(lpszPath)
   805  	ret1 := syscall3(pathFileExists, 1,
   806  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   807  		0,
   808  		0)
   809  	return ret1 != 0
   810  }
   811  
   812  func PathFindExtension(lpszPath string) LPWSTR {
   813  	lpszPathStr := unicode16FromString(lpszPath)
   814  	ret1 := syscall3(pathFindExtension, 1,
   815  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   816  		0,
   817  		0)
   818  	return (LPWSTR)(unsafe.Pointer(ret1))
   819  }
   820  
   821  func PathFindFileName(lpszPath string) LPWSTR {
   822  	lpszPathStr := unicode16FromString(lpszPath)
   823  	ret1 := syscall3(pathFindFileName, 1,
   824  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   825  		0,
   826  		0)
   827  	return (LPWSTR)(unsafe.Pointer(ret1))
   828  }
   829  
   830  func PathFindNextComponent(lpszPath string) LPWSTR {
   831  	lpszPathStr := unicode16FromString(lpszPath)
   832  	ret1 := syscall3(pathFindNextComponent, 1,
   833  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   834  		0,
   835  		0)
   836  	return (LPWSTR)(unsafe.Pointer(ret1))
   837  }
   838  
   839  func PathFindOnPath(lpszFile LPWSTR, lppszOtherDirs *LPCWSTR) bool {
   840  	ret1 := syscall3(pathFindOnPath, 2,
   841  		uintptr(unsafe.Pointer(lpszFile)),
   842  		uintptr(unsafe.Pointer(lppszOtherDirs)),
   843  		0)
   844  	return ret1 != 0
   845  }
   846  
   847  func PathFindSuffixArray(lpszSuffix string, lppszArray *LPCWSTR, dwCount int32) string {
   848  	lpszSuffixStr := unicode16FromString(lpszSuffix)
   849  	ret1 := syscall3(pathFindSuffixArray, 3,
   850  		uintptr(unsafe.Pointer(&lpszSuffixStr[0])),
   851  		uintptr(unsafe.Pointer(lppszArray)),
   852  		uintptr(dwCount))
   853  	return stringFromUnicode16((*uint16)(unsafe.Pointer(ret1)))
   854  }
   855  
   856  func PathGetArgs(lpszPath string) LPWSTR {
   857  	lpszPathStr := unicode16FromString(lpszPath)
   858  	ret1 := syscall3(pathGetArgs, 1,
   859  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   860  		0,
   861  		0)
   862  	return (LPWSTR)(unsafe.Pointer(ret1))
   863  }
   864  
   865  func PathGetCharType(ch WCHAR) UINT {
   866  	ret1 := syscall3(pathGetCharType, 1,
   867  		uintptr(ch),
   868  		0,
   869  		0)
   870  	return UINT(ret1)
   871  }
   872  
   873  func PathGetDriveNumber(lpszPath string) int32 {
   874  	lpszPathStr := unicode16FromString(lpszPath)
   875  	ret1 := syscall3(pathGetDriveNumber, 1,
   876  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   877  		0,
   878  		0)
   879  	return int32(ret1)
   880  }
   881  
   882  func PathIsContentType(lpszPath string, lpszContentType string) bool {
   883  	lpszPathStr := unicode16FromString(lpszPath)
   884  	lpszContentTypeStr := unicode16FromString(lpszContentType)
   885  	ret1 := syscall3(pathIsContentType, 2,
   886  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   887  		uintptr(unsafe.Pointer(&lpszContentTypeStr[0])),
   888  		0)
   889  	return ret1 != 0
   890  }
   891  
   892  func PathIsDirectoryEmpty(lpszPath string) bool {
   893  	lpszPathStr := unicode16FromString(lpszPath)
   894  	ret1 := syscall3(pathIsDirectoryEmpty, 1,
   895  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   896  		0,
   897  		0)
   898  	return ret1 != 0
   899  }
   900  
   901  func PathIsDirectory(lpszPath string) bool {
   902  	lpszPathStr := unicode16FromString(lpszPath)
   903  	ret1 := syscall3(pathIsDirectory, 1,
   904  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   905  		0,
   906  		0)
   907  	return ret1 != 0
   908  }
   909  
   910  func PathIsFileSpec(lpszPath string) bool {
   911  	lpszPathStr := unicode16FromString(lpszPath)
   912  	ret1 := syscall3(pathIsFileSpec, 1,
   913  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   914  		0,
   915  		0)
   916  	return ret1 != 0
   917  }
   918  
   919  func PathIsLFNFileSpec(lpszPath string) bool {
   920  	lpszPathStr := unicode16FromString(lpszPath)
   921  	ret1 := syscall3(pathIsLFNFileSpec, 1,
   922  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   923  		0,
   924  		0)
   925  	return ret1 != 0
   926  }
   927  
   928  func PathIsNetworkPath(lpszPath string) bool {
   929  	lpszPathStr := unicode16FromString(lpszPath)
   930  	ret1 := syscall3(pathIsNetworkPath, 1,
   931  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   932  		0,
   933  		0)
   934  	return ret1 != 0
   935  }
   936  
   937  func PathIsPrefix(lpszPrefix string, lpszPath string) bool {
   938  	lpszPrefixStr := unicode16FromString(lpszPrefix)
   939  	lpszPathStr := unicode16FromString(lpszPath)
   940  	ret1 := syscall3(pathIsPrefix, 2,
   941  		uintptr(unsafe.Pointer(&lpszPrefixStr[0])),
   942  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   943  		0)
   944  	return ret1 != 0
   945  }
   946  
   947  func PathIsRelative(lpszPath string) bool {
   948  	lpszPathStr := unicode16FromString(lpszPath)
   949  	ret1 := syscall3(pathIsRelative, 1,
   950  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   951  		0,
   952  		0)
   953  	return ret1 != 0
   954  }
   955  
   956  func PathIsRoot(lpszPath string) bool {
   957  	lpszPathStr := unicode16FromString(lpszPath)
   958  	ret1 := syscall3(pathIsRoot, 1,
   959  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   960  		0,
   961  		0)
   962  	return ret1 != 0
   963  }
   964  
   965  func PathIsSameRoot(lpszPath1 string, lpszPath2 string) bool {
   966  	lpszPath1Str := unicode16FromString(lpszPath1)
   967  	lpszPath2Str := unicode16FromString(lpszPath2)
   968  	ret1 := syscall3(pathIsSameRoot, 2,
   969  		uintptr(unsafe.Pointer(&lpszPath1Str[0])),
   970  		uintptr(unsafe.Pointer(&lpszPath2Str[0])),
   971  		0)
   972  	return ret1 != 0
   973  }
   974  
   975  func PathIsSystemFolder(lpszPath string, dwAttrib DWORD) bool {
   976  	lpszPathStr := unicode16FromString(lpszPath)
   977  	ret1 := syscall3(pathIsSystemFolder, 2,
   978  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   979  		uintptr(dwAttrib),
   980  		0)
   981  	return ret1 != 0
   982  }
   983  
   984  func PathIsUNCServerShare(lpszPath string) bool {
   985  	lpszPathStr := unicode16FromString(lpszPath)
   986  	ret1 := syscall3(pathIsUNCServerShare, 1,
   987  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   988  		0,
   989  		0)
   990  	return ret1 != 0
   991  }
   992  
   993  func PathIsUNCServer(lpszPath string) bool {
   994  	lpszPathStr := unicode16FromString(lpszPath)
   995  	ret1 := syscall3(pathIsUNCServer, 1,
   996  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   997  		0,
   998  		0)
   999  	return ret1 != 0
  1000  }
  1001  
  1002  func PathIsUNC(lpszPath string) bool {
  1003  	lpszPathStr := unicode16FromString(lpszPath)
  1004  	ret1 := syscall3(pathIsUNC, 1,
  1005  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
  1006  		0,
  1007  		0)
  1008  	return ret1 != 0
  1009  }
  1010  
  1011  func PathIsURL(lpstrPath string) bool {
  1012  	lpstrPathStr := unicode16FromString(lpstrPath)
  1013  	ret1 := syscall3(pathIsURL, 1,
  1014  		uintptr(unsafe.Pointer(&lpstrPathStr[0])),
  1015  		0,
  1016  		0)
  1017  	return ret1 != 0
  1018  }
  1019  
  1020  func PathMakePretty(lpszPath LPWSTR) bool {
  1021  	ret1 := syscall3(pathMakePretty, 1,
  1022  		uintptr(unsafe.Pointer(lpszPath)),
  1023  		0,
  1024  		0)
  1025  	return ret1 != 0
  1026  }
  1027  
  1028  func PathMakeSystemFolder(lpszPath string) bool {
  1029  	lpszPathStr := unicode16FromString(lpszPath)
  1030  	ret1 := syscall3(pathMakeSystemFolder, 1,
  1031  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
  1032  		0,
  1033  		0)
  1034  	return ret1 != 0
  1035  }
  1036  
  1037  func PathMatchSpec(lpszPath string, lpszMask string) bool {
  1038  	lpszPathStr := unicode16FromString(lpszPath)
  1039  	lpszMaskStr := unicode16FromString(lpszMask)
  1040  	ret1 := syscall3(pathMatchSpec, 2,
  1041  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
  1042  		uintptr(unsafe.Pointer(&lpszMaskStr[0])),
  1043  		0)
  1044  	return ret1 != 0
  1045  }
  1046  
  1047  func PathParseIconLocation(lpszPath LPWSTR) int32 {
  1048  	ret1 := syscall3(pathParseIconLocation, 1,
  1049  		uintptr(unsafe.Pointer(lpszPath)),
  1050  		0,
  1051  		0)
  1052  	return int32(ret1)
  1053  }
  1054  
  1055  func PathQuoteSpaces(lpszPath LPWSTR) {
  1056  	syscall3(pathQuoteSpaces, 1,
  1057  		uintptr(unsafe.Pointer(lpszPath)),
  1058  		0,
  1059  		0)
  1060  }
  1061  
  1062  func PathRelativePathTo(lpszPath LPWSTR, lpszFrom string, dwAttrFrom DWORD, lpszTo string, dwAttrTo DWORD) bool {
  1063  	lpszFromStr := unicode16FromString(lpszFrom)
  1064  	lpszToStr := unicode16FromString(lpszTo)
  1065  	ret1 := syscall6(pathRelativePathTo, 5,
  1066  		uintptr(unsafe.Pointer(lpszPath)),
  1067  		uintptr(unsafe.Pointer(&lpszFromStr[0])),
  1068  		uintptr(dwAttrFrom),
  1069  		uintptr(unsafe.Pointer(&lpszToStr[0])),
  1070  		uintptr(dwAttrTo),
  1071  		0)
  1072  	return ret1 != 0
  1073  }
  1074  
  1075  func PathRemoveArgs(lpszPath LPWSTR) {
  1076  	syscall3(pathRemoveArgs, 1,
  1077  		uintptr(unsafe.Pointer(lpszPath)),
  1078  		0,
  1079  		0)
  1080  }
  1081  
  1082  func PathRemoveBackslash(lpszPath LPWSTR) LPWSTR {
  1083  	ret1 := syscall3(pathRemoveBackslash, 1,
  1084  		uintptr(unsafe.Pointer(lpszPath)),
  1085  		0,
  1086  		0)
  1087  	return (LPWSTR)(unsafe.Pointer(ret1))
  1088  }
  1089  
  1090  func PathRemoveBlanks(lpszPath LPWSTR) {
  1091  	syscall3(pathRemoveBlanks, 1,
  1092  		uintptr(unsafe.Pointer(lpszPath)),
  1093  		0,
  1094  		0)
  1095  }
  1096  
  1097  func PathRemoveExtension(lpszPath LPWSTR) {
  1098  	syscall3(pathRemoveExtension, 1,
  1099  		uintptr(unsafe.Pointer(lpszPath)),
  1100  		0,
  1101  		0)
  1102  }
  1103  
  1104  func PathRemoveFileSpec(lpszPath LPWSTR) bool {
  1105  	ret1 := syscall3(pathRemoveFileSpec, 1,
  1106  		uintptr(unsafe.Pointer(lpszPath)),
  1107  		0,
  1108  		0)
  1109  	return ret1 != 0
  1110  }
  1111  
  1112  func PathRenameExtension(lpszPath LPWSTR, lpszExt string) bool {
  1113  	lpszExtStr := unicode16FromString(lpszExt)
  1114  	ret1 := syscall3(pathRenameExtension, 2,
  1115  		uintptr(unsafe.Pointer(lpszPath)),
  1116  		uintptr(unsafe.Pointer(&lpszExtStr[0])),
  1117  		0)
  1118  	return ret1 != 0
  1119  }
  1120  
  1121  func PathSearchAndQualify(lpszPath string, lpszBuf LPWSTR, cchBuf UINT) bool {
  1122  	lpszPathStr := unicode16FromString(lpszPath)
  1123  	ret1 := syscall3(pathSearchAndQualify, 3,
  1124  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
  1125  		uintptr(unsafe.Pointer(lpszBuf)),
  1126  		uintptr(cchBuf))
  1127  	return ret1 != 0
  1128  }
  1129  
  1130  func PathSetDlgItemPath(hDlg HWND, id int32, lpszPath string) {
  1131  	lpszPathStr := unicode16FromString(lpszPath)
  1132  	syscall3(pathSetDlgItemPath, 3,
  1133  		uintptr(hDlg),
  1134  		uintptr(id),
  1135  		uintptr(unsafe.Pointer(&lpszPathStr[0])))
  1136  }
  1137  
  1138  func PathSkipRoot(lpszPath string) LPWSTR {
  1139  	lpszPathStr := unicode16FromString(lpszPath)
  1140  	ret1 := syscall3(pathSkipRoot, 1,
  1141  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
  1142  		0,
  1143  		0)
  1144  	return (LPWSTR)(unsafe.Pointer(ret1))
  1145  }
  1146  
  1147  func PathStripPath(lpszPath LPWSTR) {
  1148  	syscall3(pathStripPath, 1,
  1149  		uintptr(unsafe.Pointer(lpszPath)),
  1150  		0,
  1151  		0)
  1152  }
  1153  
  1154  func PathStripToRoot(lpszPath LPWSTR) bool {
  1155  	ret1 := syscall3(pathStripToRoot, 1,
  1156  		uintptr(unsafe.Pointer(lpszPath)),
  1157  		0,
  1158  		0)
  1159  	return ret1 != 0
  1160  }
  1161  
  1162  func PathUnExpandEnvStrings(path string, buffer LPWSTR, buf_len UINT) bool {
  1163  	pathStr := unicode16FromString(path)
  1164  	ret1 := syscall3(pathUnExpandEnvStrings, 3,
  1165  		uintptr(unsafe.Pointer(&pathStr[0])),
  1166  		uintptr(unsafe.Pointer(buffer)),
  1167  		uintptr(buf_len))
  1168  	return ret1 != 0
  1169  }
  1170  
  1171  func PathUndecorate(lpszPath LPWSTR) {
  1172  	syscall3(pathUndecorate, 1,
  1173  		uintptr(unsafe.Pointer(lpszPath)),
  1174  		0,
  1175  		0)
  1176  }
  1177  
  1178  func PathUnmakeSystemFolder(lpszPath string) bool {
  1179  	lpszPathStr := unicode16FromString(lpszPath)
  1180  	ret1 := syscall3(pathUnmakeSystemFolder, 1,
  1181  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
  1182  		0,
  1183  		0)
  1184  	return ret1 != 0
  1185  }
  1186  
  1187  func PathUnquoteSpaces(lpszPath LPWSTR) {
  1188  	syscall3(pathUnquoteSpaces, 1,
  1189  		uintptr(unsafe.Pointer(lpszPath)),
  1190  		0,
  1191  		0)
  1192  }
  1193  
  1194  func QISearch(base uintptr, table /*const*/ *QITAB, riid REFIID, ppv uintptr) HRESULT {
  1195  	ret1 := syscall6(qISearch, 4,
  1196  		base,
  1197  		uintptr(unsafe.Pointer(table)),
  1198  		uintptr(unsafe.Pointer(riid)),
  1199  		ppv,
  1200  		0,
  1201  		0)
  1202  	return HRESULT(ret1)
  1203  }
  1204  
  1205  func SHAllocShared(lpvData LPVOID, dwSize DWORD, dwProcId DWORD) HANDLE {
  1206  	ret1 := syscall3(sHAllocShared, 3,
  1207  		uintptr(unsafe.Pointer(lpvData)),
  1208  		uintptr(dwSize),
  1209  		uintptr(dwProcId))
  1210  	return HANDLE(ret1)
  1211  }
  1212  
  1213  func SHAnsiToAnsi(lpszSrc /*const*/ LPCSTR, lpszDst LPSTR, iLen int32) DWORD {
  1214  	ret1 := syscall3(sHAnsiToAnsi, 3,
  1215  		uintptr(unsafe.Pointer(lpszSrc)),
  1216  		uintptr(unsafe.Pointer(lpszDst)),
  1217  		uintptr(iLen))
  1218  	return DWORD(ret1)
  1219  }
  1220  
  1221  func SHAnsiToUnicode(lpSrcStr /*const*/ LPCSTR, lpDstStr LPWSTR, iLen int32) DWORD {
  1222  	ret1 := syscall3(sHAnsiToUnicode, 3,
  1223  		uintptr(unsafe.Pointer(lpSrcStr)),
  1224  		uintptr(unsafe.Pointer(lpDstStr)),
  1225  		uintptr(iLen))
  1226  	return DWORD(ret1)
  1227  }
  1228  
  1229  func SHAutoComplete(hwndEdit HWND, dwFlags DWORD) HRESULT {
  1230  	ret1 := syscall3(sHAutoComplete, 2,
  1231  		uintptr(hwndEdit),
  1232  		uintptr(dwFlags),
  1233  		0)
  1234  	return HRESULT(ret1)
  1235  }
  1236  
  1237  func SHCopyKey(hKeySrc HKEY, lpszSrcSubKey string, hKeyDst HKEY, dwReserved DWORD) DWORD {
  1238  	lpszSrcSubKeyStr := unicode16FromString(lpszSrcSubKey)
  1239  	ret1 := syscall6(sHCopyKey, 4,
  1240  		uintptr(hKeySrc),
  1241  		uintptr(unsafe.Pointer(&lpszSrcSubKeyStr[0])),
  1242  		uintptr(hKeyDst),
  1243  		uintptr(dwReserved),
  1244  		0,
  1245  		0)
  1246  	return DWORD(ret1)
  1247  }
  1248  
  1249  func SHCreateShellPalette(hdc HDC) HPALETTE {
  1250  	ret1 := syscall3(sHCreateShellPalette, 1,
  1251  		uintptr(hdc),
  1252  		0,
  1253  		0)
  1254  	return HPALETTE(ret1)
  1255  }
  1256  
  1257  func SHCreateStreamOnFileEx(lpszPath string, dwMode DWORD, dwAttributes DWORD, bCreate bool, lpTemplate *IStream, lppStream **IStream) HRESULT {
  1258  	lpszPathStr := unicode16FromString(lpszPath)
  1259  	ret1 := syscall6(sHCreateStreamOnFileEx, 6,
  1260  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
  1261  		uintptr(dwMode),
  1262  		uintptr(dwAttributes),
  1263  		getUintptrFromBool(bCreate),
  1264  		uintptr(unsafe.Pointer(lpTemplate)),
  1265  		uintptr(unsafe.Pointer(lppStream)))
  1266  	return HRESULT(ret1)
  1267  }
  1268  
  1269  func SHCreateStreamOnFile(lpszPath string, dwMode DWORD, lppStream **IStream) HRESULT {
  1270  	lpszPathStr := unicode16FromString(lpszPath)
  1271  	ret1 := syscall3(sHCreateStreamOnFile, 3,
  1272  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
  1273  		uintptr(dwMode),
  1274  		uintptr(unsafe.Pointer(lppStream)))
  1275  	return HRESULT(ret1)
  1276  }
  1277  
  1278  func SHCreateStreamWrapper(lpbData *byte, dwDataLen DWORD, dwReserved DWORD, lppStream **IStream) HRESULT {
  1279  	ret1 := syscall6(sHCreateStreamWrapper, 4,
  1280  		uintptr(unsafe.Pointer(lpbData)),
  1281  		uintptr(dwDataLen),
  1282  		uintptr(dwReserved),
  1283  		uintptr(unsafe.Pointer(lppStream)),
  1284  		0,
  1285  		0)
  1286  	return HRESULT(ret1)
  1287  }
  1288  
  1289  func SHCreateThread(pfnThreadProc THREAD_START_ROUTINE, pData uintptr, dwFlags DWORD, pfnCallback THREAD_START_ROUTINE) bool {
  1290  	pfnThreadProcCallback := syscall.NewCallback(func(lpThreadParameterRawArg LPVOID) uintptr {
  1291  		ret := pfnThreadProc(lpThreadParameterRawArg)
  1292  		return uintptr(ret)
  1293  	})
  1294  	pfnCallbackCallback := syscall.NewCallback(func(lpThreadParameterRawArg LPVOID) uintptr {
  1295  		ret := pfnCallback(lpThreadParameterRawArg)
  1296  		return uintptr(ret)
  1297  	})
  1298  	ret1 := syscall6(sHCreateThread, 4,
  1299  		pfnThreadProcCallback,
  1300  		pData,
  1301  		uintptr(dwFlags),
  1302  		pfnCallbackCallback,
  1303  		0,
  1304  		0)
  1305  	return ret1 != 0
  1306  }
  1307  
  1308  func SHCreateThreadRef(lprefcount *LONG, lppUnknown **IUnknown) HRESULT {
  1309  	ret1 := syscall3(sHCreateThreadRef, 2,
  1310  		uintptr(unsafe.Pointer(lprefcount)),
  1311  		uintptr(unsafe.Pointer(lppUnknown)),
  1312  		0)
  1313  	return HRESULT(ret1)
  1314  }
  1315  
  1316  func SHDeleteEmptyKey(hKey HKEY, lpszSubKey string) DWORD {
  1317  	lpszSubKeyStr := unicode16FromString(lpszSubKey)
  1318  	ret1 := syscall3(sHDeleteEmptyKey, 2,
  1319  		uintptr(hKey),
  1320  		uintptr(unsafe.Pointer(&lpszSubKeyStr[0])),
  1321  		0)
  1322  	return DWORD(ret1)
  1323  }
  1324  
  1325  func SHDeleteKey(hKey HKEY, lpszSubKey string) DWORD {
  1326  	lpszSubKeyStr := unicode16FromString(lpszSubKey)
  1327  	ret1 := syscall3(sHDeleteKey, 2,
  1328  		uintptr(hKey),
  1329  		uintptr(unsafe.Pointer(&lpszSubKeyStr[0])),
  1330  		0)
  1331  	return DWORD(ret1)
  1332  }
  1333  
  1334  func SHDeleteOrphanKey(hKey HKEY, lpszSubKey string) DWORD {
  1335  	lpszSubKeyStr := unicode16FromString(lpszSubKey)
  1336  	ret1 := syscall3(sHDeleteOrphanKey, 2,
  1337  		uintptr(hKey),
  1338  		uintptr(unsafe.Pointer(&lpszSubKeyStr[0])),
  1339  		0)
  1340  	return DWORD(ret1)
  1341  }
  1342  
  1343  func SHDeleteValue(hKey HKEY, lpszSubKey string, lpszValue string) DWORD {
  1344  	lpszSubKeyStr := unicode16FromString(lpszSubKey)
  1345  	lpszValueStr := unicode16FromString(lpszValue)
  1346  	ret1 := syscall3(sHDeleteValue, 3,
  1347  		uintptr(hKey),
  1348  		uintptr(unsafe.Pointer(&lpszSubKeyStr[0])),
  1349  		uintptr(unsafe.Pointer(&lpszValueStr[0])))
  1350  	return DWORD(ret1)
  1351  }
  1352  
  1353  func SHEnumKeyEx(hKey HKEY, dwIndex DWORD, lpszSubKey LPWSTR, pwLen *uint32) LONG {
  1354  	ret1 := syscall6(sHEnumKeyEx, 4,
  1355  		uintptr(hKey),
  1356  		uintptr(dwIndex),
  1357  		uintptr(unsafe.Pointer(lpszSubKey)),
  1358  		uintptr(unsafe.Pointer(pwLen)),
  1359  		0,
  1360  		0)
  1361  	return LONG(ret1)
  1362  }
  1363  
  1364  func SHEnumValue(hKey HKEY, dwIndex DWORD, lpszValue LPWSTR, pwLen *uint32, pwType *uint32, pvData LPVOID, pcbData *uint32) LONG {
  1365  	ret1 := syscall9(sHEnumValue, 7,
  1366  		uintptr(hKey),
  1367  		uintptr(dwIndex),
  1368  		uintptr(unsafe.Pointer(lpszValue)),
  1369  		uintptr(unsafe.Pointer(pwLen)),
  1370  		uintptr(unsafe.Pointer(pwType)),
  1371  		uintptr(unsafe.Pointer(pvData)),
  1372  		uintptr(unsafe.Pointer(pcbData)),
  1373  		0,
  1374  		0)
  1375  	return LONG(ret1)
  1376  }
  1377  
  1378  func SHFormatDateTime(fileTime /*const*/ *FILETIME, flags *uint32, buf LPWSTR, size UINT) INT {
  1379  	ret1 := syscall6(sHFormatDateTime, 4,
  1380  		uintptr(unsafe.Pointer(fileTime)),
  1381  		uintptr(unsafe.Pointer(flags)),
  1382  		uintptr(unsafe.Pointer(buf)),
  1383  		uintptr(size),
  1384  		0,
  1385  		0)
  1386  	return INT(ret1)
  1387  }
  1388  
  1389  func SHFreeShared(hShared HANDLE, dwProcId DWORD) bool {
  1390  	ret1 := syscall3(sHFreeShared, 2,
  1391  		uintptr(hShared),
  1392  		uintptr(dwProcId),
  1393  		0)
  1394  	return ret1 != 0
  1395  }
  1396  
  1397  func SHGetInverseCMAP(dest *uint32, dwSize DWORD) HRESULT {
  1398  	ret1 := syscall3(sHGetInverseCMAP, 2,
  1399  		uintptr(unsafe.Pointer(dest)),
  1400  		uintptr(dwSize),
  1401  		0)
  1402  	return HRESULT(ret1)
  1403  }
  1404  
  1405  func SHGetThreadRef(lppUnknown **IUnknown) HRESULT {
  1406  	ret1 := syscall3(sHGetThreadRef, 1,
  1407  		uintptr(unsafe.Pointer(lppUnknown)),
  1408  		0,
  1409  		0)
  1410  	return HRESULT(ret1)
  1411  }
  1412  
  1413  func SHGetValue(hKey HKEY, lpszSubKey string, lpszValue string, pwType *uint32, pvData LPVOID, pcbData *uint32) DWORD {
  1414  	lpszSubKeyStr := unicode16FromString(lpszSubKey)
  1415  	lpszValueStr := unicode16FromString(lpszValue)
  1416  	ret1 := syscall6(sHGetValue, 6,
  1417  		uintptr(hKey),
  1418  		uintptr(unsafe.Pointer(&lpszSubKeyStr[0])),
  1419  		uintptr(unsafe.Pointer(&lpszValueStr[0])),
  1420  		uintptr(unsafe.Pointer(pwType)),
  1421  		uintptr(unsafe.Pointer(pvData)),
  1422  		uintptr(unsafe.Pointer(pcbData)))
  1423  	return DWORD(ret1)
  1424  }
  1425  
  1426  func SHGetViewStatePropertyBag(pidl /*const*/ LPCITEMIDLIST, bag_name LPWSTR, flags DWORD, riid REFIID, ppv uintptr) HRESULT {
  1427  	ret1 := syscall6(sHGetViewStatePropertyBag, 5,
  1428  		uintptr(unsafe.Pointer(pidl)),
  1429  		uintptr(unsafe.Pointer(bag_name)),
  1430  		uintptr(flags),
  1431  		uintptr(unsafe.Pointer(riid)),
  1432  		ppv,
  1433  		0)
  1434  	return HRESULT(ret1)
  1435  }
  1436  
  1437  func SHIsChildOrSelf(hParent HWND, hChild HWND) bool {
  1438  	ret1 := syscall3(sHIsChildOrSelf, 2,
  1439  		uintptr(hParent),
  1440  		uintptr(hChild),
  1441  		0)
  1442  	return ret1 != 0
  1443  }
  1444  
  1445  func SHIsLowMemoryMachine(x DWORD) bool {
  1446  	ret1 := syscall3(sHIsLowMemoryMachine, 1,
  1447  		uintptr(x),
  1448  		0,
  1449  		0)
  1450  	return ret1 != 0
  1451  }
  1452  
  1453  func SHLoadIndirectString(src string, dst LPWSTR, dst_len UINT, reserved uintptr) HRESULT {
  1454  	srcStr := unicode16FromString(src)
  1455  	ret1 := syscall6(sHLoadIndirectString, 4,
  1456  		uintptr(unsafe.Pointer(&srcStr[0])),
  1457  		uintptr(unsafe.Pointer(dst)),
  1458  		uintptr(dst_len),
  1459  		reserved,
  1460  		0,
  1461  		0)
  1462  	return HRESULT(ret1)
  1463  }
  1464  
  1465  func SHLockShared(hShared HANDLE, dwProcId DWORD) LPVOID {
  1466  	ret1 := syscall3(sHLockShared, 2,
  1467  		uintptr(hShared),
  1468  		uintptr(dwProcId),
  1469  		0)
  1470  	return (LPVOID)(unsafe.Pointer(ret1))
  1471  }
  1472  
  1473  func SHMessageBoxCheck(unnamed0 HWND, unnamed1 string, unnamed2 string, unnamed3 DWORD, unnamed4 INT_PTR, unnamed5 string) INT_PTR {
  1474  	unnamed1Str := unicode16FromString(unnamed1)
  1475  	unnamed2Str := unicode16FromString(unnamed2)
  1476  	unnamed5Str := unicode16FromString(unnamed5)
  1477  	ret1 := syscall6(sHMessageBoxCheck, 6,
  1478  		uintptr(unnamed0),
  1479  		uintptr(unsafe.Pointer(&unnamed1Str[0])),
  1480  		uintptr(unsafe.Pointer(&unnamed2Str[0])),
  1481  		uintptr(unnamed3),
  1482  		uintptr(unsafe.Pointer(unnamed4)),
  1483  		uintptr(unsafe.Pointer(&unnamed5Str[0])))
  1484  	return (INT_PTR)(unsafe.Pointer(ret1))
  1485  }
  1486  
  1487  func SHQueryInfoKey(hKey HKEY, pwSubKeys *uint32, pwSubKeyMax *uint32, pwValues *uint32, pwValueMax *uint32) LONG {
  1488  	ret1 := syscall6(sHQueryInfoKey, 5,
  1489  		uintptr(hKey),
  1490  		uintptr(unsafe.Pointer(pwSubKeys)),
  1491  		uintptr(unsafe.Pointer(pwSubKeyMax)),
  1492  		uintptr(unsafe.Pointer(pwValues)),
  1493  		uintptr(unsafe.Pointer(pwValueMax)),
  1494  		0)
  1495  	return LONG(ret1)
  1496  }
  1497  
  1498  func SHQueryValueEx(hKey HKEY, lpszValue string, lpReserved *uint32, pwType *uint32, pvData LPVOID, pcbData *uint32) DWORD {
  1499  	lpszValueStr := unicode16FromString(lpszValue)
  1500  	ret1 := syscall6(sHQueryValueEx, 6,
  1501  		uintptr(hKey),
  1502  		uintptr(unsafe.Pointer(&lpszValueStr[0])),
  1503  		uintptr(unsafe.Pointer(lpReserved)),
  1504  		uintptr(unsafe.Pointer(pwType)),
  1505  		uintptr(unsafe.Pointer(pvData)),
  1506  		uintptr(unsafe.Pointer(pcbData)))
  1507  	return DWORD(ret1)
  1508  }
  1509  
  1510  func SHRegCloseUSKey(hUSKey HUSKEY) LONG {
  1511  	ret1 := syscall3(sHRegCloseUSKey, 1,
  1512  		uintptr(hUSKey),
  1513  		0,
  1514  		0)
  1515  	return LONG(ret1)
  1516  }
  1517  
  1518  func SHRegCreateUSKey(path string, samDesired REGSAM, relative_key HUSKEY, new_uskey PHUSKEY, flags DWORD) LONG {
  1519  	pathStr := unicode16FromString(path)
  1520  	ret1 := syscall6(sHRegCreateUSKey, 5,
  1521  		uintptr(unsafe.Pointer(&pathStr[0])),
  1522  		uintptr(samDesired),
  1523  		uintptr(relative_key),
  1524  		uintptr(unsafe.Pointer(new_uskey)),
  1525  		uintptr(flags),
  1526  		0)
  1527  	return LONG(ret1)
  1528  }
  1529  
  1530  func SHRegDeleteEmptyUSKey(hUSKey HUSKEY, pszValue string, delRegFlags SHREGDEL_FLAGS) LONG {
  1531  	pszValueStr := unicode16FromString(pszValue)
  1532  	ret1 := syscall3(sHRegDeleteEmptyUSKey, 3,
  1533  		uintptr(hUSKey),
  1534  		uintptr(unsafe.Pointer(&pszValueStr[0])),
  1535  		uintptr(delRegFlags))
  1536  	return LONG(ret1)
  1537  }
  1538  
  1539  func SHRegDeleteUSValue(hUSKey HUSKEY, pszValue string, delRegFlags SHREGDEL_FLAGS) LONG {
  1540  	pszValueStr := unicode16FromString(pszValue)
  1541  	ret1 := syscall3(sHRegDeleteUSValue, 3,
  1542  		uintptr(hUSKey),
  1543  		uintptr(unsafe.Pointer(&pszValueStr[0])),
  1544  		uintptr(delRegFlags))
  1545  	return LONG(ret1)
  1546  }
  1547  
  1548  func SHRegDuplicateHKey(hKey HKEY) HKEY {
  1549  	ret1 := syscall3(sHRegDuplicateHKey, 1,
  1550  		uintptr(hKey),
  1551  		0,
  1552  		0)
  1553  	return HKEY(ret1)
  1554  }
  1555  
  1556  func SHRegEnumUSKey(hUSKey HUSKEY, dwIndex DWORD, pszName LPWSTR, pcchValueNameLen *uint32, enumRegFlags SHREGENUM_FLAGS) LONG {
  1557  	ret1 := syscall6(sHRegEnumUSKey, 5,
  1558  		uintptr(hUSKey),
  1559  		uintptr(dwIndex),
  1560  		uintptr(unsafe.Pointer(pszName)),
  1561  		uintptr(unsafe.Pointer(pcchValueNameLen)),
  1562  		uintptr(enumRegFlags),
  1563  		0)
  1564  	return LONG(ret1)
  1565  }
  1566  
  1567  func SHRegEnumUSValue(hUSKey HUSKEY, dwIndex DWORD, pszValueName LPWSTR, pcchValueNameLen *uint32, pdwType *uint32, pvData LPVOID, pcbData *uint32, enumRegFlags SHREGENUM_FLAGS) LONG {
  1568  	ret1 := syscall9(sHRegEnumUSValue, 8,
  1569  		uintptr(hUSKey),
  1570  		uintptr(dwIndex),
  1571  		uintptr(unsafe.Pointer(pszValueName)),
  1572  		uintptr(unsafe.Pointer(pcchValueNameLen)),
  1573  		uintptr(unsafe.Pointer(pdwType)),
  1574  		uintptr(unsafe.Pointer(pvData)),
  1575  		uintptr(unsafe.Pointer(pcbData)),
  1576  		uintptr(enumRegFlags),
  1577  		0)
  1578  	return LONG(ret1)
  1579  }
  1580  
  1581  func SHRegGetBoolUSValue(pszSubKey string, pszValue string, fIgnoreHKCU bool, fDefault bool) bool {
  1582  	pszSubKeyStr := unicode16FromString(pszSubKey)
  1583  	pszValueStr := unicode16FromString(pszValue)
  1584  	ret1 := syscall6(sHRegGetBoolUSValue, 4,
  1585  		uintptr(unsafe.Pointer(&pszSubKeyStr[0])),
  1586  		uintptr(unsafe.Pointer(&pszValueStr[0])),
  1587  		getUintptrFromBool(fIgnoreHKCU),
  1588  		getUintptrFromBool(fDefault),
  1589  		0,
  1590  		0)
  1591  	return ret1 != 0
  1592  }
  1593  
  1594  func SHRegGetIntW(hKey HKEY, lpszValue string, iDefault int32) int32 {
  1595  	lpszValueStr := unicode16FromString(lpszValue)
  1596  	ret1 := syscall3(sHRegGetIntW, 3,
  1597  		uintptr(hKey),
  1598  		uintptr(unsafe.Pointer(&lpszValueStr[0])),
  1599  		uintptr(iDefault))
  1600  	return int32(ret1)
  1601  }
  1602  
  1603  func SHRegGetPath(hKey HKEY, lpszSubKey string, lpszValue string, lpszPath LPWSTR, dwFlags DWORD) DWORD {
  1604  	lpszSubKeyStr := unicode16FromString(lpszSubKey)
  1605  	lpszValueStr := unicode16FromString(lpszValue)
  1606  	ret1 := syscall6(sHRegGetPath, 5,
  1607  		uintptr(hKey),
  1608  		uintptr(unsafe.Pointer(&lpszSubKeyStr[0])),
  1609  		uintptr(unsafe.Pointer(&lpszValueStr[0])),
  1610  		uintptr(unsafe.Pointer(lpszPath)),
  1611  		uintptr(dwFlags),
  1612  		0)
  1613  	return DWORD(ret1)
  1614  }
  1615  
  1616  func SHRegGetUSValue(pSubKey string, pValue string, pwType *uint32, pvData LPVOID, pcbData *uint32, flagIgnoreHKCU bool, pDefaultData LPVOID, wDefaultDataSize DWORD) LONG {
  1617  	pSubKeyStr := unicode16FromString(pSubKey)
  1618  	pValueStr := unicode16FromString(pValue)
  1619  	ret1 := syscall9(sHRegGetUSValue, 8,
  1620  		uintptr(unsafe.Pointer(&pSubKeyStr[0])),
  1621  		uintptr(unsafe.Pointer(&pValueStr[0])),
  1622  		uintptr(unsafe.Pointer(pwType)),
  1623  		uintptr(unsafe.Pointer(pvData)),
  1624  		uintptr(unsafe.Pointer(pcbData)),
  1625  		getUintptrFromBool(flagIgnoreHKCU),
  1626  		uintptr(unsafe.Pointer(pDefaultData)),
  1627  		uintptr(wDefaultDataSize),
  1628  		0)
  1629  	return LONG(ret1)
  1630  }
  1631  
  1632  func SHRegOpenUSKey(path string, accessType REGSAM, hRelativeUSKey HUSKEY, phNewUSKey PHUSKEY, fIgnoreHKCU bool) LONG {
  1633  	pathStr := unicode16FromString(path)
  1634  	ret1 := syscall6(sHRegOpenUSKey, 5,
  1635  		uintptr(unsafe.Pointer(&pathStr[0])),
  1636  		uintptr(accessType),
  1637  		uintptr(hRelativeUSKey),
  1638  		uintptr(unsafe.Pointer(phNewUSKey)),
  1639  		getUintptrFromBool(fIgnoreHKCU),
  1640  		0)
  1641  	return LONG(ret1)
  1642  }
  1643  
  1644  func SHRegQueryInfoUSKey(hUSKey HUSKEY, pcSubKeys *uint32, pcchMaxSubKeyLen *uint32, pcValues *uint32, pcchMaxValueNameLen *uint32, enumRegFlags SHREGENUM_FLAGS) LONG {
  1645  	ret1 := syscall6(sHRegQueryInfoUSKey, 6,
  1646  		uintptr(hUSKey),
  1647  		uintptr(unsafe.Pointer(pcSubKeys)),
  1648  		uintptr(unsafe.Pointer(pcchMaxSubKeyLen)),
  1649  		uintptr(unsafe.Pointer(pcValues)),
  1650  		uintptr(unsafe.Pointer(pcchMaxValueNameLen)),
  1651  		uintptr(enumRegFlags))
  1652  	return LONG(ret1)
  1653  }
  1654  
  1655  func SHRegQueryUSValue(hUSKey HUSKEY, pszValue string, pdwType *uint32, pvData LPVOID, pcbData *uint32, fIgnoreHKCU bool, pvDefaultData LPVOID, dwDefaultDataSize DWORD) LONG {
  1656  	pszValueStr := unicode16FromString(pszValue)
  1657  	ret1 := syscall9(sHRegQueryUSValue, 8,
  1658  		uintptr(hUSKey),
  1659  		uintptr(unsafe.Pointer(&pszValueStr[0])),
  1660  		uintptr(unsafe.Pointer(pdwType)),
  1661  		uintptr(unsafe.Pointer(pvData)),
  1662  		uintptr(unsafe.Pointer(pcbData)),
  1663  		getUintptrFromBool(fIgnoreHKCU),
  1664  		uintptr(unsafe.Pointer(pvDefaultData)),
  1665  		uintptr(dwDefaultDataSize),
  1666  		0)
  1667  	return LONG(ret1)
  1668  }
  1669  
  1670  func SHRegSetPath(hKey HKEY, lpszSubKey string, lpszValue string, lpszPath string, dwFlags DWORD) DWORD {
  1671  	lpszSubKeyStr := unicode16FromString(lpszSubKey)
  1672  	lpszValueStr := unicode16FromString(lpszValue)
  1673  	lpszPathStr := unicode16FromString(lpszPath)
  1674  	ret1 := syscall6(sHRegSetPath, 5,
  1675  		uintptr(hKey),
  1676  		uintptr(unsafe.Pointer(&lpszSubKeyStr[0])),
  1677  		uintptr(unsafe.Pointer(&lpszValueStr[0])),
  1678  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
  1679  		uintptr(dwFlags),
  1680  		0)
  1681  	return DWORD(ret1)
  1682  }
  1683  
  1684  func SHRegSetUSValue(pszSubKey string, pszValue string, dwType DWORD, pvData LPVOID, cbData DWORD, dwFlags DWORD) LONG {
  1685  	pszSubKeyStr := unicode16FromString(pszSubKey)
  1686  	pszValueStr := unicode16FromString(pszValue)
  1687  	ret1 := syscall6(sHRegSetUSValue, 6,
  1688  		uintptr(unsafe.Pointer(&pszSubKeyStr[0])),
  1689  		uintptr(unsafe.Pointer(&pszValueStr[0])),
  1690  		uintptr(dwType),
  1691  		uintptr(unsafe.Pointer(pvData)),
  1692  		uintptr(cbData),
  1693  		uintptr(dwFlags))
  1694  	return LONG(ret1)
  1695  }
  1696  
  1697  func SHRegWriteUSValue(hUSKey HUSKEY, pszValue string, dwType DWORD, pvData LPVOID, cbData DWORD, dwFlags DWORD) LONG {
  1698  	pszValueStr := unicode16FromString(pszValue)
  1699  	ret1 := syscall6(sHRegWriteUSValue, 6,
  1700  		uintptr(hUSKey),
  1701  		uintptr(unsafe.Pointer(&pszValueStr[0])),
  1702  		uintptr(dwType),
  1703  		uintptr(unsafe.Pointer(pvData)),
  1704  		uintptr(cbData),
  1705  		uintptr(dwFlags))
  1706  	return LONG(ret1)
  1707  }
  1708  
  1709  func SHRegisterValidateTemplate(filename string, unknown bool) HRESULT {
  1710  	filenameStr := unicode16FromString(filename)
  1711  	ret1 := syscall3(sHRegisterValidateTemplate, 2,
  1712  		uintptr(unsafe.Pointer(&filenameStr[0])),
  1713  		getUintptrFromBool(unknown),
  1714  		0)
  1715  	return HRESULT(ret1)
  1716  }
  1717  
  1718  func SHReleaseThreadRef() HRESULT {
  1719  	ret1 := syscall3(sHReleaseThreadRef, 0,
  1720  		0,
  1721  		0,
  1722  		0)
  1723  	return HRESULT(ret1)
  1724  }
  1725  
  1726  func SHSendMessageBroadcast(uMsg UINT, wParam WPARAM, lParam LPARAM) DWORD {
  1727  	ret1 := syscall3(sHSendMessageBroadcast, 3,
  1728  		uintptr(uMsg),
  1729  		uintptr(wParam),
  1730  		uintptr(lParam))
  1731  	return DWORD(ret1)
  1732  }
  1733  
  1734  func SHSetThreadRef(lpUnknown *IUnknown) HRESULT {
  1735  	ret1 := syscall3(sHSetThreadRef, 1,
  1736  		uintptr(unsafe.Pointer(lpUnknown)),
  1737  		0,
  1738  		0)
  1739  	return HRESULT(ret1)
  1740  }
  1741  
  1742  func SHSetValue(hKey HKEY, lpszSubKey string, lpszValue string, dwType DWORD, pvData /*const*/ uintptr, cbData DWORD) DWORD {
  1743  	lpszSubKeyStr := unicode16FromString(lpszSubKey)
  1744  	lpszValueStr := unicode16FromString(lpszValue)
  1745  	ret1 := syscall6(sHSetValue, 6,
  1746  		uintptr(hKey),
  1747  		uintptr(unsafe.Pointer(&lpszSubKeyStr[0])),
  1748  		uintptr(unsafe.Pointer(&lpszValueStr[0])),
  1749  		uintptr(dwType),
  1750  		pvData,
  1751  		uintptr(cbData))
  1752  	return DWORD(ret1)
  1753  }
  1754  
  1755  func SHSkipJunction(pbc *IBindCtx, pclsid /*const*/ *CLSID) bool {
  1756  	ret1 := syscall3(sHSkipJunction, 2,
  1757  		uintptr(unsafe.Pointer(pbc)),
  1758  		uintptr(unsafe.Pointer(pclsid)),
  1759  		0)
  1760  	return ret1 != 0
  1761  }
  1762  
  1763  func SHStrDup(src string, dest *LPWSTR) HRESULT {
  1764  	srcStr := unicode16FromString(src)
  1765  	ret1 := syscall3(sHStrDup, 2,
  1766  		uintptr(unsafe.Pointer(&srcStr[0])),
  1767  		uintptr(unsafe.Pointer(dest)),
  1768  		0)
  1769  	return HRESULT(ret1)
  1770  }
  1771  
  1772  func SHStripMneumonic(lpszStr string) WCHAR {
  1773  	lpszStrStr := unicode16FromString(lpszStr)
  1774  	ret1 := syscall3(sHStripMneumonic, 1,
  1775  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  1776  		0,
  1777  		0)
  1778  	return WCHAR(ret1)
  1779  }
  1780  
  1781  func SHUnicodeToAnsi(lpSrcStr string, lpDstStr LPSTR, iLen INT) INT {
  1782  	lpSrcStrStr := unicode16FromString(lpSrcStr)
  1783  	ret1 := syscall3(sHUnicodeToAnsi, 3,
  1784  		uintptr(unsafe.Pointer(&lpSrcStrStr[0])),
  1785  		uintptr(unsafe.Pointer(lpDstStr)),
  1786  		uintptr(iLen))
  1787  	return INT(ret1)
  1788  }
  1789  
  1790  func SHUnicodeToUnicode(lpszSrc string, lpszDst LPWSTR, iLen int32) DWORD {
  1791  	lpszSrcStr := unicode16FromString(lpszSrc)
  1792  	ret1 := syscall3(sHUnicodeToUnicode, 3,
  1793  		uintptr(unsafe.Pointer(&lpszSrcStr[0])),
  1794  		uintptr(unsafe.Pointer(lpszDst)),
  1795  		uintptr(iLen))
  1796  	return DWORD(ret1)
  1797  }
  1798  
  1799  func SHUnlockShared(lpView LPVOID) bool {
  1800  	ret1 := syscall3(sHUnlockShared, 1,
  1801  		uintptr(unsafe.Pointer(lpView)),
  1802  		0,
  1803  		0)
  1804  	return ret1 != 0
  1805  }
  1806  
  1807  func StrCSpnI(lpszStr string, lpszMatch string) int32 {
  1808  	lpszStrStr := unicode16FromString(lpszStr)
  1809  	lpszMatchStr := unicode16FromString(lpszMatch)
  1810  	ret1 := syscall3(strCSpnI, 2,
  1811  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  1812  		uintptr(unsafe.Pointer(&lpszMatchStr[0])),
  1813  		0)
  1814  	return int32(ret1)
  1815  }
  1816  
  1817  func StrCSpn(lpszStr string, lpszMatch string) int32 {
  1818  	lpszStrStr := unicode16FromString(lpszStr)
  1819  	lpszMatchStr := unicode16FromString(lpszMatch)
  1820  	ret1 := syscall3(strCSpn, 2,
  1821  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  1822  		uintptr(unsafe.Pointer(&lpszMatchStr[0])),
  1823  		0)
  1824  	return int32(ret1)
  1825  }
  1826  
  1827  func StrCatBuff(lpszStr LPWSTR, lpszCat string, cchMax INT) LPWSTR {
  1828  	lpszCatStr := unicode16FromString(lpszCat)
  1829  	ret1 := syscall3(strCatBuff, 3,
  1830  		uintptr(unsafe.Pointer(lpszStr)),
  1831  		uintptr(unsafe.Pointer(&lpszCatStr[0])),
  1832  		uintptr(cchMax))
  1833  	return (LPWSTR)(unsafe.Pointer(ret1))
  1834  }
  1835  
  1836  func StrCatChainW(lpszStr LPWSTR, cchMax DWORD, ichAt DWORD, lpszCat string) DWORD {
  1837  	lpszCatStr := unicode16FromString(lpszCat)
  1838  	ret1 := syscall6(strCatChainW, 4,
  1839  		uintptr(unsafe.Pointer(lpszStr)),
  1840  		uintptr(cchMax),
  1841  		uintptr(ichAt),
  1842  		uintptr(unsafe.Pointer(&lpszCatStr[0])),
  1843  		0,
  1844  		0)
  1845  	return DWORD(ret1)
  1846  }
  1847  
  1848  func StrCatW(lpszStr LPWSTR, lpszSrc string) LPWSTR {
  1849  	lpszSrcStr := unicode16FromString(lpszSrc)
  1850  	ret1 := syscall3(strCatW, 2,
  1851  		uintptr(unsafe.Pointer(lpszStr)),
  1852  		uintptr(unsafe.Pointer(&lpszSrcStr[0])),
  1853  		0)
  1854  	return (LPWSTR)(unsafe.Pointer(ret1))
  1855  }
  1856  
  1857  func StrChrI(lpszStr string, ch WCHAR) LPWSTR {
  1858  	lpszStrStr := unicode16FromString(lpszStr)
  1859  	ret1 := syscall3(strChrI, 2,
  1860  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  1861  		uintptr(ch),
  1862  		0)
  1863  	return (LPWSTR)(unsafe.Pointer(ret1))
  1864  }
  1865  
  1866  func StrChrNW(lpszStr string, ch WCHAR, cchMax UINT) LPWSTR {
  1867  	lpszStrStr := unicode16FromString(lpszStr)
  1868  	ret1 := syscall3(strChrNW, 3,
  1869  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  1870  		uintptr(ch),
  1871  		uintptr(cchMax))
  1872  	return (LPWSTR)(unsafe.Pointer(ret1))
  1873  }
  1874  
  1875  func StrChr(lpszStr string, ch WCHAR) LPWSTR {
  1876  	lpszStrStr := unicode16FromString(lpszStr)
  1877  	ret1 := syscall3(strChr, 2,
  1878  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  1879  		uintptr(ch),
  1880  		0)
  1881  	return (LPWSTR)(unsafe.Pointer(ret1))
  1882  }
  1883  
  1884  func StrCmpC(lpszSrc string, lpszCmp string) DWORD {
  1885  	lpszSrcStr := unicode16FromString(lpszSrc)
  1886  	lpszCmpStr := unicode16FromString(lpszCmp)
  1887  	ret1 := syscall3(strCmpC, 2,
  1888  		uintptr(unsafe.Pointer(&lpszSrcStr[0])),
  1889  		uintptr(unsafe.Pointer(&lpszCmpStr[0])),
  1890  		0)
  1891  	return DWORD(ret1)
  1892  }
  1893  
  1894  func StrCmpIC(lpszSrc string, lpszCmp string) DWORD {
  1895  	lpszSrcStr := unicode16FromString(lpszSrc)
  1896  	lpszCmpStr := unicode16FromString(lpszCmp)
  1897  	ret1 := syscall3(strCmpIC, 2,
  1898  		uintptr(unsafe.Pointer(&lpszSrcStr[0])),
  1899  		uintptr(unsafe.Pointer(&lpszCmpStr[0])),
  1900  		0)
  1901  	return DWORD(ret1)
  1902  }
  1903  
  1904  func StrCmpIW(lpszStr string, lpszComp string) int32 {
  1905  	lpszStrStr := unicode16FromString(lpszStr)
  1906  	lpszCompStr := unicode16FromString(lpszComp)
  1907  	ret1 := syscall3(strCmpIW, 2,
  1908  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  1909  		uintptr(unsafe.Pointer(&lpszCompStr[0])),
  1910  		0)
  1911  	return int32(ret1)
  1912  }
  1913  
  1914  func StrCmpLogicalW(lpszStr string, lpszComp string) INT {
  1915  	lpszStrStr := unicode16FromString(lpszStr)
  1916  	lpszCompStr := unicode16FromString(lpszComp)
  1917  	ret1 := syscall3(strCmpLogicalW, 2,
  1918  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  1919  		uintptr(unsafe.Pointer(&lpszCompStr[0])),
  1920  		0)
  1921  	return INT(ret1)
  1922  }
  1923  
  1924  func StrCmpNC(lpszSrc string, lpszCmp string, aLen INT) DWORD {
  1925  	lpszSrcStr := unicode16FromString(lpszSrc)
  1926  	lpszCmpStr := unicode16FromString(lpszCmp)
  1927  	ret1 := syscall3(strCmpNC, 3,
  1928  		uintptr(unsafe.Pointer(&lpszSrcStr[0])),
  1929  		uintptr(unsafe.Pointer(&lpszCmpStr[0])),
  1930  		uintptr(aLen))
  1931  	return DWORD(ret1)
  1932  }
  1933  
  1934  func StrCmpNIC(lpszSrc string, lpszCmp string, aLen DWORD) DWORD {
  1935  	lpszSrcStr := unicode16FromString(lpszSrc)
  1936  	lpszCmpStr := unicode16FromString(lpszCmp)
  1937  	ret1 := syscall3(strCmpNIC, 3,
  1938  		uintptr(unsafe.Pointer(&lpszSrcStr[0])),
  1939  		uintptr(unsafe.Pointer(&lpszCmpStr[0])),
  1940  		uintptr(aLen))
  1941  	return DWORD(ret1)
  1942  }
  1943  
  1944  func StrCmpNI(lpszStr string, lpszComp string, iLen INT) INT {
  1945  	lpszStrStr := unicode16FromString(lpszStr)
  1946  	lpszCompStr := unicode16FromString(lpszComp)
  1947  	ret1 := syscall3(strCmpNI, 3,
  1948  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  1949  		uintptr(unsafe.Pointer(&lpszCompStr[0])),
  1950  		uintptr(iLen))
  1951  	return INT(ret1)
  1952  }
  1953  
  1954  func StrCmpN(lpszStr string, lpszComp string, iLen INT) INT {
  1955  	lpszStrStr := unicode16FromString(lpszStr)
  1956  	lpszCompStr := unicode16FromString(lpszComp)
  1957  	ret1 := syscall3(strCmpN, 3,
  1958  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  1959  		uintptr(unsafe.Pointer(&lpszCompStr[0])),
  1960  		uintptr(iLen))
  1961  	return INT(ret1)
  1962  }
  1963  
  1964  func StrCmpW(lpszStr string, lpszComp string) int32 {
  1965  	lpszStrStr := unicode16FromString(lpszStr)
  1966  	lpszCompStr := unicode16FromString(lpszComp)
  1967  	ret1 := syscall3(strCmpW, 2,
  1968  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  1969  		uintptr(unsafe.Pointer(&lpszCompStr[0])),
  1970  		0)
  1971  	return int32(ret1)
  1972  }
  1973  
  1974  func StrCpyNW(dst LPWSTR, src string, count int32) LPWSTR {
  1975  	srcStr := unicode16FromString(src)
  1976  	ret1 := syscall3(strCpyNW, 3,
  1977  		uintptr(unsafe.Pointer(dst)),
  1978  		uintptr(unsafe.Pointer(&srcStr[0])),
  1979  		uintptr(count))
  1980  	return (LPWSTR)(unsafe.Pointer(ret1))
  1981  }
  1982  
  1983  func StrCpyW(lpszStr LPWSTR, lpszSrc string) LPWSTR {
  1984  	lpszSrcStr := unicode16FromString(lpszSrc)
  1985  	ret1 := syscall3(strCpyW, 2,
  1986  		uintptr(unsafe.Pointer(lpszStr)),
  1987  		uintptr(unsafe.Pointer(&lpszSrcStr[0])),
  1988  		0)
  1989  	return (LPWSTR)(unsafe.Pointer(ret1))
  1990  }
  1991  
  1992  func StrDup(lpszStr string) LPWSTR {
  1993  	lpszStrStr := unicode16FromString(lpszStr)
  1994  	ret1 := syscall3(strDup, 1,
  1995  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  1996  		0,
  1997  		0)
  1998  	return (LPWSTR)(unsafe.Pointer(ret1))
  1999  }
  2000  
  2001  func StrFormatByteSize64A(llBytes LONGLONG, lpszDest LPSTR, cchMax UINT) LPSTR {
  2002  	ret1 := syscall3(strFormatByteSize64A, 3,
  2003  		uintptr(llBytes),
  2004  		uintptr(unsafe.Pointer(lpszDest)),
  2005  		uintptr(cchMax))
  2006  	return (LPSTR)(unsafe.Pointer(ret1))
  2007  }
  2008  
  2009  func StrFormatByteSize(llBytes LONGLONG, lpszDest LPWSTR, cchMax UINT) LPWSTR {
  2010  	ret1 := syscall3(strFormatByteSize, 3,
  2011  		uintptr(llBytes),
  2012  		uintptr(unsafe.Pointer(lpszDest)),
  2013  		uintptr(cchMax))
  2014  	return (LPWSTR)(unsafe.Pointer(ret1))
  2015  }
  2016  
  2017  func StrFormatKBSize(llBytes LONGLONG, lpszDest LPWSTR, cchMax UINT) LPWSTR {
  2018  	ret1 := syscall3(strFormatKBSize, 3,
  2019  		uintptr(llBytes),
  2020  		uintptr(unsafe.Pointer(lpszDest)),
  2021  		uintptr(cchMax))
  2022  	return (LPWSTR)(unsafe.Pointer(ret1))
  2023  }
  2024  
  2025  func StrFromTimeInterval(lpszStr LPWSTR, cchMax UINT, dwMS DWORD, iDigits int32) INT {
  2026  	ret1 := syscall6(strFromTimeInterval, 4,
  2027  		uintptr(unsafe.Pointer(lpszStr)),
  2028  		uintptr(cchMax),
  2029  		uintptr(dwMS),
  2030  		uintptr(iDigits),
  2031  		0,
  2032  		0)
  2033  	return INT(ret1)
  2034  }
  2035  
  2036  func StrIsIntlEqual(bCase bool, lpszStr string, lpszComp string, iLen int32) bool {
  2037  	lpszStrStr := unicode16FromString(lpszStr)
  2038  	lpszCompStr := unicode16FromString(lpszComp)
  2039  	ret1 := syscall6(strIsIntlEqual, 4,
  2040  		getUintptrFromBool(bCase),
  2041  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  2042  		uintptr(unsafe.Pointer(&lpszCompStr[0])),
  2043  		uintptr(iLen),
  2044  		0,
  2045  		0)
  2046  	return ret1 != 0
  2047  }
  2048  
  2049  func StrNCat(lpszStr LPWSTR, lpszCat string, cchMax INT) LPWSTR {
  2050  	lpszCatStr := unicode16FromString(lpszCat)
  2051  	ret1 := syscall3(strNCat, 3,
  2052  		uintptr(unsafe.Pointer(lpszStr)),
  2053  		uintptr(unsafe.Pointer(&lpszCatStr[0])),
  2054  		uintptr(cchMax))
  2055  	return (LPWSTR)(unsafe.Pointer(ret1))
  2056  }
  2057  
  2058  func StrPBrk(lpszStr string, lpszMatch string) LPWSTR {
  2059  	lpszStrStr := unicode16FromString(lpszStr)
  2060  	lpszMatchStr := unicode16FromString(lpszMatch)
  2061  	ret1 := syscall3(strPBrk, 2,
  2062  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  2063  		uintptr(unsafe.Pointer(&lpszMatchStr[0])),
  2064  		0)
  2065  	return (LPWSTR)(unsafe.Pointer(ret1))
  2066  }
  2067  
  2068  func StrRChrI(str string, end string, ch WORD) LPWSTR {
  2069  	strStr := unicode16FromString(str)
  2070  	endStr := unicode16FromString(end)
  2071  	ret1 := syscall3(strRChrI, 3,
  2072  		uintptr(unsafe.Pointer(&strStr[0])),
  2073  		uintptr(unsafe.Pointer(&endStr[0])),
  2074  		uintptr(ch))
  2075  	return (LPWSTR)(unsafe.Pointer(ret1))
  2076  }
  2077  
  2078  func StrRChr(str string, end string, ch WORD) LPWSTR {
  2079  	strStr := unicode16FromString(str)
  2080  	endStr := unicode16FromString(end)
  2081  	ret1 := syscall3(strRChr, 3,
  2082  		uintptr(unsafe.Pointer(&strStr[0])),
  2083  		uintptr(unsafe.Pointer(&endStr[0])),
  2084  		uintptr(ch))
  2085  	return (LPWSTR)(unsafe.Pointer(ret1))
  2086  }
  2087  
  2088  func StrRStrI(lpszStr string, lpszEnd string, lpszSearch string) LPWSTR {
  2089  	lpszStrStr := unicode16FromString(lpszStr)
  2090  	lpszEndStr := unicode16FromString(lpszEnd)
  2091  	lpszSearchStr := unicode16FromString(lpszSearch)
  2092  	ret1 := syscall3(strRStrI, 3,
  2093  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  2094  		uintptr(unsafe.Pointer(&lpszEndStr[0])),
  2095  		uintptr(unsafe.Pointer(&lpszSearchStr[0])))
  2096  	return (LPWSTR)(unsafe.Pointer(ret1))
  2097  }
  2098  
  2099  func StrRetToBSTR(lpStrRet *STRRET, pidl /*const*/ LPCITEMIDLIST, pBstrOut *BSTR) HRESULT {
  2100  	ret1 := syscall3(strRetToBSTR, 3,
  2101  		uintptr(unsafe.Pointer(lpStrRet)),
  2102  		uintptr(unsafe.Pointer(pidl)),
  2103  		uintptr(unsafe.Pointer(pBstrOut)))
  2104  	return HRESULT(ret1)
  2105  }
  2106  
  2107  func StrRetToBuf(src *STRRET, pidl /*const*/ *ITEMIDLIST, dest LPWSTR, aLen UINT) HRESULT {
  2108  	ret1 := syscall6(strRetToBuf, 4,
  2109  		uintptr(unsafe.Pointer(src)),
  2110  		uintptr(unsafe.Pointer(pidl)),
  2111  		uintptr(unsafe.Pointer(dest)),
  2112  		uintptr(aLen),
  2113  		0,
  2114  		0)
  2115  	return HRESULT(ret1)
  2116  }
  2117  
  2118  func StrRetToStr(lpStrRet *STRRET, pidl /*const*/ *ITEMIDLIST, ppszName *LPWSTR) HRESULT {
  2119  	ret1 := syscall3(strRetToStr, 3,
  2120  		uintptr(unsafe.Pointer(lpStrRet)),
  2121  		uintptr(unsafe.Pointer(pidl)),
  2122  		uintptr(unsafe.Pointer(ppszName)))
  2123  	return HRESULT(ret1)
  2124  }
  2125  
  2126  func StrSpn(lpszStr string, lpszMatch string) int32 {
  2127  	lpszStrStr := unicode16FromString(lpszStr)
  2128  	lpszMatchStr := unicode16FromString(lpszMatch)
  2129  	ret1 := syscall3(strSpn, 2,
  2130  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  2131  		uintptr(unsafe.Pointer(&lpszMatchStr[0])),
  2132  		0)
  2133  	return int32(ret1)
  2134  }
  2135  
  2136  func StrStrI(lpszStr string, lpszSearch string) LPWSTR {
  2137  	lpszStrStr := unicode16FromString(lpszStr)
  2138  	lpszSearchStr := unicode16FromString(lpszSearch)
  2139  	ret1 := syscall3(strStrI, 2,
  2140  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  2141  		uintptr(unsafe.Pointer(&lpszSearchStr[0])),
  2142  		0)
  2143  	return (LPWSTR)(unsafe.Pointer(ret1))
  2144  }
  2145  
  2146  func StrStrNIW(lpFirst string, lpSrch string, cchMax UINT) LPWSTR {
  2147  	lpFirstStr := unicode16FromString(lpFirst)
  2148  	lpSrchStr := unicode16FromString(lpSrch)
  2149  	ret1 := syscall3(strStrNIW, 3,
  2150  		uintptr(unsafe.Pointer(&lpFirstStr[0])),
  2151  		uintptr(unsafe.Pointer(&lpSrchStr[0])),
  2152  		uintptr(cchMax))
  2153  	return (LPWSTR)(unsafe.Pointer(ret1))
  2154  }
  2155  
  2156  func StrStrNW(lpFirst string, lpSrch string, cchMax UINT) LPWSTR {
  2157  	lpFirstStr := unicode16FromString(lpFirst)
  2158  	lpSrchStr := unicode16FromString(lpSrch)
  2159  	ret1 := syscall3(strStrNW, 3,
  2160  		uintptr(unsafe.Pointer(&lpFirstStr[0])),
  2161  		uintptr(unsafe.Pointer(&lpSrchStr[0])),
  2162  		uintptr(cchMax))
  2163  	return (LPWSTR)(unsafe.Pointer(ret1))
  2164  }
  2165  
  2166  func StrStr(lpszStr string, lpszSearch string) LPWSTR {
  2167  	lpszStrStr := unicode16FromString(lpszStr)
  2168  	lpszSearchStr := unicode16FromString(lpszSearch)
  2169  	ret1 := syscall3(strStr, 2,
  2170  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  2171  		uintptr(unsafe.Pointer(&lpszSearchStr[0])),
  2172  		0)
  2173  	return (LPWSTR)(unsafe.Pointer(ret1))
  2174  }
  2175  
  2176  func StrToInt64Ex(lpszStr string, dwFlags DWORD, lpiRet *LONGLONG) bool {
  2177  	lpszStrStr := unicode16FromString(lpszStr)
  2178  	ret1 := syscall3(strToInt64Ex, 3,
  2179  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  2180  		uintptr(dwFlags),
  2181  		uintptr(unsafe.Pointer(lpiRet)))
  2182  	return ret1 != 0
  2183  }
  2184  
  2185  func StrToIntEx(lpszStr string, dwFlags DWORD, lpiRet *int32) bool {
  2186  	lpszStrStr := unicode16FromString(lpszStr)
  2187  	ret1 := syscall3(strToIntEx, 3,
  2188  		uintptr(unsafe.Pointer(&lpszStrStr[0])),
  2189  		uintptr(dwFlags),
  2190  		uintptr(unsafe.Pointer(lpiRet)))
  2191  	return ret1 != 0
  2192  }
  2193  
  2194  func StrToInt(lpString string) INT {
  2195  	lpStringStr := unicode16FromString(lpString)
  2196  	ret1 := syscall3(strToInt, 1,
  2197  		uintptr(unsafe.Pointer(&lpStringStr[0])),
  2198  		0,
  2199  		0)
  2200  	return INT(ret1)
  2201  }
  2202  
  2203  func StrTrim(lpszStr LPWSTR, lpszTrim string) bool {
  2204  	lpszTrimStr := unicode16FromString(lpszTrim)
  2205  	ret1 := syscall3(strTrim, 2,
  2206  		uintptr(unsafe.Pointer(lpszStr)),
  2207  		uintptr(unsafe.Pointer(&lpszTrimStr[0])),
  2208  		0)
  2209  	return ret1 != 0
  2210  }
  2211  
  2212  func UrlApplyScheme(pszIn string, pszOut LPWSTR, pcchOut *uint32, dwFlags DWORD) HRESULT {
  2213  	pszInStr := unicode16FromString(pszIn)
  2214  	ret1 := syscall6(urlApplyScheme, 4,
  2215  		uintptr(unsafe.Pointer(&pszInStr[0])),
  2216  		uintptr(unsafe.Pointer(pszOut)),
  2217  		uintptr(unsafe.Pointer(pcchOut)),
  2218  		uintptr(dwFlags),
  2219  		0,
  2220  		0)
  2221  	return HRESULT(ret1)
  2222  }
  2223  
  2224  func UrlCanonicalize(pszUrl string, pszCanonicalized LPWSTR, pcchCanonicalized *uint32, dwFlags DWORD) HRESULT {
  2225  	pszUrlStr := unicode16FromString(pszUrl)
  2226  	ret1 := syscall6(urlCanonicalize, 4,
  2227  		uintptr(unsafe.Pointer(&pszUrlStr[0])),
  2228  		uintptr(unsafe.Pointer(pszCanonicalized)),
  2229  		uintptr(unsafe.Pointer(pcchCanonicalized)),
  2230  		uintptr(dwFlags),
  2231  		0,
  2232  		0)
  2233  	return HRESULT(ret1)
  2234  }
  2235  
  2236  func UrlCombine(pszBase string, pszRelative string, pszCombined LPWSTR, pcchCombined *uint32, dwFlags DWORD) HRESULT {
  2237  	pszBaseStr := unicode16FromString(pszBase)
  2238  	pszRelativeStr := unicode16FromString(pszRelative)
  2239  	ret1 := syscall6(urlCombine, 5,
  2240  		uintptr(unsafe.Pointer(&pszBaseStr[0])),
  2241  		uintptr(unsafe.Pointer(&pszRelativeStr[0])),
  2242  		uintptr(unsafe.Pointer(pszCombined)),
  2243  		uintptr(unsafe.Pointer(pcchCombined)),
  2244  		uintptr(dwFlags),
  2245  		0)
  2246  	return HRESULT(ret1)
  2247  }
  2248  
  2249  func UrlCompare(pszUrl1 string, pszUrl2 string, fIgnoreSlash bool) INT {
  2250  	pszUrl1Str := unicode16FromString(pszUrl1)
  2251  	pszUrl2Str := unicode16FromString(pszUrl2)
  2252  	ret1 := syscall3(urlCompare, 3,
  2253  		uintptr(unsafe.Pointer(&pszUrl1Str[0])),
  2254  		uintptr(unsafe.Pointer(&pszUrl2Str[0])),
  2255  		getUintptrFromBool(fIgnoreSlash))
  2256  	return INT(ret1)
  2257  }
  2258  
  2259  func UrlCreateFromPath(pszPath string, pszUrl LPWSTR, pcchUrl *uint32, dwReserved DWORD) HRESULT {
  2260  	pszPathStr := unicode16FromString(pszPath)
  2261  	ret1 := syscall6(urlCreateFromPath, 4,
  2262  		uintptr(unsafe.Pointer(&pszPathStr[0])),
  2263  		uintptr(unsafe.Pointer(pszUrl)),
  2264  		uintptr(unsafe.Pointer(pcchUrl)),
  2265  		uintptr(dwReserved),
  2266  		0,
  2267  		0)
  2268  	return HRESULT(ret1)
  2269  }
  2270  
  2271  func UrlEscape(pszUrl string, pszEscaped LPWSTR, pcchEscaped *uint32, dwFlags DWORD) HRESULT {
  2272  	pszUrlStr := unicode16FromString(pszUrl)
  2273  	ret1 := syscall6(urlEscape, 4,
  2274  		uintptr(unsafe.Pointer(&pszUrlStr[0])),
  2275  		uintptr(unsafe.Pointer(pszEscaped)),
  2276  		uintptr(unsafe.Pointer(pcchEscaped)),
  2277  		uintptr(dwFlags),
  2278  		0,
  2279  		0)
  2280  	return HRESULT(ret1)
  2281  }
  2282  
  2283  func UrlFixupW(url string, translatedUrl LPWSTR, maxChars DWORD) HRESULT {
  2284  	urlStr := unicode16FromString(url)
  2285  	ret1 := syscall3(urlFixupW, 3,
  2286  		uintptr(unsafe.Pointer(&urlStr[0])),
  2287  		uintptr(unsafe.Pointer(translatedUrl)),
  2288  		uintptr(maxChars))
  2289  	return HRESULT(ret1)
  2290  }
  2291  
  2292  func UrlGetLocation(pszUrl string) string {
  2293  	pszUrlStr := unicode16FromString(pszUrl)
  2294  	ret1 := syscall3(urlGetLocation, 1,
  2295  		uintptr(unsafe.Pointer(&pszUrlStr[0])),
  2296  		0,
  2297  		0)
  2298  	return stringFromUnicode16((*uint16)(unsafe.Pointer(ret1)))
  2299  }
  2300  
  2301  func UrlGetPart(pszIn string, pszOut LPWSTR, pcchOut *uint32, dwPart DWORD, dwFlags DWORD) HRESULT {
  2302  	pszInStr := unicode16FromString(pszIn)
  2303  	ret1 := syscall6(urlGetPart, 5,
  2304  		uintptr(unsafe.Pointer(&pszInStr[0])),
  2305  		uintptr(unsafe.Pointer(pszOut)),
  2306  		uintptr(unsafe.Pointer(pcchOut)),
  2307  		uintptr(dwPart),
  2308  		uintptr(dwFlags),
  2309  		0)
  2310  	return HRESULT(ret1)
  2311  }
  2312  
  2313  func UrlHash(pszUrl string, lpDest *byte, nDestLen DWORD) HRESULT {
  2314  	pszUrlStr := unicode16FromString(pszUrl)
  2315  	ret1 := syscall3(urlHash, 3,
  2316  		uintptr(unsafe.Pointer(&pszUrlStr[0])),
  2317  		uintptr(unsafe.Pointer(lpDest)),
  2318  		uintptr(nDestLen))
  2319  	return HRESULT(ret1)
  2320  }
  2321  
  2322  func UrlIsNoHistory(pszUrl string) bool {
  2323  	pszUrlStr := unicode16FromString(pszUrl)
  2324  	ret1 := syscall3(urlIsNoHistory, 1,
  2325  		uintptr(unsafe.Pointer(&pszUrlStr[0])),
  2326  		0,
  2327  		0)
  2328  	return ret1 != 0
  2329  }
  2330  
  2331  func UrlIsOpaque(pszUrl string) bool {
  2332  	pszUrlStr := unicode16FromString(pszUrl)
  2333  	ret1 := syscall3(urlIsOpaque, 1,
  2334  		uintptr(unsafe.Pointer(&pszUrlStr[0])),
  2335  		0,
  2336  		0)
  2337  	return ret1 != 0
  2338  }
  2339  
  2340  func UrlIs(pszUrl string, urlis URLIS) bool {
  2341  	pszUrlStr := unicode16FromString(pszUrl)
  2342  	ret1 := syscall3(urlIs, 2,
  2343  		uintptr(unsafe.Pointer(&pszUrlStr[0])),
  2344  		uintptr(urlis),
  2345  		0)
  2346  	return ret1 != 0
  2347  }
  2348  
  2349  func UrlUnescape(pszUrl LPWSTR, pszUnescaped LPWSTR, pcchUnescaped *uint32, dwFlags DWORD) HRESULT {
  2350  	ret1 := syscall6(urlUnescape, 4,
  2351  		uintptr(unsafe.Pointer(pszUrl)),
  2352  		uintptr(unsafe.Pointer(pszUnescaped)),
  2353  		uintptr(unsafe.Pointer(pcchUnescaped)),
  2354  		uintptr(dwFlags),
  2355  		0,
  2356  		0)
  2357  	return HRESULT(ret1)
  2358  }
  2359  
  2360  func WhichPlatform() DWORD {
  2361  	ret1 := syscall3(whichPlatform, 0,
  2362  		0,
  2363  		0,
  2364  		0)
  2365  	return DWORD(ret1)
  2366  }