github.com/kbinani/win@v0.3.0/shell32.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  	libshell32 uintptr
    16  
    17  	// Functions
    18  	sHAddFromPropSheetExtArray              uintptr
    19  	sHCreatePropSheetExtArray               uintptr
    20  	sHDestroyPropSheetExtArray              uintptr
    21  	sHReplaceFromPropSheetExtArray          uintptr
    22  	cDefFolderMenu_Create2                  uintptr
    23  	cIDLData_CreateFromIDArray              uintptr
    24  	callCPLEntry16                          uintptr
    25  	checkEscapes                            uintptr
    26  	control_FillCache_RunDLL                uintptr
    27  	control_RunDLL                          uintptr
    28  	dAD_AutoScroll                          uintptr
    29  	dAD_DragEnterEx                         uintptr
    30  	dAD_DragLeave                           uintptr
    31  	dAD_DragMove                            uintptr
    32  	dAD_SetDragImage                        uintptr
    33  	dAD_ShowDragImage                       uintptr
    34  	doEnvironmentSubst                      uintptr
    35  	dragAcceptFiles                         uintptr
    36  	dragFinish                              uintptr
    37  	dragQueryFile                           uintptr
    38  	dragQueryPoint                          uintptr
    39  	driveType                               uintptr
    40  	duplicateIcon                           uintptr
    41  	extractAssociatedIconEx                 uintptr
    42  	extractAssociatedIcon                   uintptr
    43  	extractIconEx                           uintptr
    44  	extractIcon                             uintptr
    45  	extractVersionResource16W               uintptr
    46  	findExecutable                          uintptr
    47  	freeIconList                            uintptr
    48  	getCurrentProcessExplicitAppUserModelID uintptr
    49  	iLAppendID                              uintptr
    50  	iLClone                                 uintptr
    51  	iLCloneFirst                            uintptr
    52  	iLCombine                               uintptr
    53  	iLCreateFromPath                        uintptr
    54  	iLFindChild                             uintptr
    55  	iLFindLastID                            uintptr
    56  	iLFree                                  uintptr
    57  	iLGetNext                               uintptr
    58  	iLGetSize                               uintptr
    59  	iLIsEqual                               uintptr
    60  	iLIsParent                              uintptr
    61  	iLLoadFromStream                        uintptr
    62  	iLRemoveLastID                          uintptr
    63  	iLSaveToStream                          uintptr
    64  	initNetworkAddressControl               uintptr
    65  	isLFNDrive                              uintptr
    66  	isNetDrive                              uintptr
    67  	isUserAnAdmin                           uintptr
    68  	openAs_RunDLL                           uintptr
    69  	pathCleanupSpec                         uintptr
    70  	pathYetAnotherMakeUniqueName            uintptr
    71  	pickIconDlg                             uintptr
    72  	readCabinetState                        uintptr
    73  	realDriveType                           uintptr
    74  	regenerateUserEnvironment               uintptr
    75  	restartDialog                           uintptr
    76  	restartDialogEx                         uintptr
    77  	sHAddToRecentDocs                       uintptr
    78  	sHAlloc                                 uintptr
    79  	sHAppBarMessage                         uintptr
    80  	sHAssocEnumHandlers                     uintptr
    81  	sHBindToParent                          uintptr
    82  	sHBrowseForFolder                       uintptr
    83  	sHChangeNotification_Lock               uintptr
    84  	sHChangeNotification_Unlock             uintptr
    85  	sHChangeNotify                          uintptr
    86  	sHChangeNotifyDeregister                uintptr
    87  	sHChangeNotifyRegister                  uintptr
    88  	sHCloneSpecialIDList                    uintptr
    89  	sHCoCreateInstance                      uintptr
    90  	sHCreateDefaultContextMenu              uintptr
    91  	sHCreateDirectory                       uintptr
    92  	sHCreateDirectoryEx                     uintptr
    93  	sHCreateFileExtractIconW                uintptr
    94  	sHCreateItemFromIDList                  uintptr
    95  	sHCreateItemFromParsingName             uintptr
    96  	sHCreateQueryCancelAutoPlayMoniker      uintptr
    97  	sHCreateShellFolderView                 uintptr
    98  	sHCreateShellFolderViewEx               uintptr
    99  	sHCreateShellItem                       uintptr
   100  	sHCreateShellItemArray                  uintptr
   101  	sHCreateShellItemArrayFromDataObject    uintptr
   102  	sHCreateShellItemArrayFromIDLists       uintptr
   103  	sHCreateShellItemArrayFromShellItem     uintptr
   104  	sHCreateStdEnumFmtEtc                   uintptr
   105  	sHDefExtractIcon                        uintptr
   106  	sHDoDragDrop                            uintptr
   107  	sHEmptyRecycleBin                       uintptr
   108  	sHEnumerateUnreadMailAccountsW          uintptr
   109  	sHFileOperation                         uintptr
   110  	sHFindFiles                             uintptr
   111  	sHFind_InitMenuPopup                    uintptr
   112  	sHFlushClipboard                        uintptr
   113  	sHFlushSFCache                          uintptr
   114  	sHFormatDrive                           uintptr
   115  	sHFree                                  uintptr
   116  	sHFreeNameMappings                      uintptr
   117  	sHGetDataFromIDList                     uintptr
   118  	sHGetDesktopFolder                      uintptr
   119  	sHGetFileInfo                           uintptr
   120  	sHGetFolderLocation                     uintptr
   121  	sHGetFolderPathAndSubDir                uintptr
   122  	sHGetFolderPathEx                       uintptr
   123  	sHGetFolderPath                         uintptr
   124  	sHGetIDListFromObject                   uintptr
   125  	sHGetIconOverlayIndex                   uintptr
   126  	sHGetImageList                          uintptr
   127  	sHGetInstanceExplorer                   uintptr
   128  	sHGetItemFromDataObject                 uintptr
   129  	sHGetItemFromObject                     uintptr
   130  	sHGetKnownFolderIDList                  uintptr
   131  	sHGetKnownFolderItem                    uintptr
   132  	sHGetKnownFolderPath                    uintptr
   133  	sHGetLocalizedName                      uintptr
   134  	sHGetMalloc                             uintptr
   135  	sHGetNameFromIDList                     uintptr
   136  	sHGetNewLinkInfo                        uintptr
   137  	sHGetPathFromIDList                     uintptr
   138  	sHGetPropertyStoreForWindow             uintptr
   139  	sHGetPropertyStoreFromParsingName       uintptr
   140  	sHGetRealIDL                            uintptr
   141  	sHGetSetSettings                        uintptr
   142  	sHGetSettings                           uintptr
   143  	sHGetSpecialFolderLocation              uintptr
   144  	sHGetSpecialFolderPath                  uintptr
   145  	sHGetStockIconInfo                      uintptr
   146  	sHHandleUpdateImage                     uintptr
   147  	sHHelpShortcuts_RunDLL                  uintptr
   148  	sHIsFileAvailableOffline                uintptr
   149  	sHLimitInputEdit                        uintptr
   150  	sHLoadInProc                            uintptr
   151  	sHLoadNonloadedIconOverlayIdentifiers   uintptr
   152  	sHMapIDListToImageListIndexAsync        uintptr
   153  	sHMapPIDLToSystemImageListIndex         uintptr
   154  	sHObjectProperties                      uintptr
   155  	sHOpenFolderAndSelectItems              uintptr
   156  	sHParseDisplayName                      uintptr
   157  	sHPathPrepareForWrite                   uintptr
   158  	sHPropStgCreate                         uintptr
   159  	sHPropStgReadMultiple                   uintptr
   160  	sHPropStgWriteMultiple                  uintptr
   161  	sHQueryRecycleBin                       uintptr
   162  	sHQueryUserNotificationState            uintptr
   163  	sHRemoveLocalizedName                   uintptr
   164  	sHRestricted                            uintptr
   165  	sHRunControlPanel                       uintptr
   166  	sHSetInstanceExplorer                   uintptr
   167  	sHSetLocalizedName                      uintptr
   168  	sHSetUnreadMailCountW                   uintptr
   169  	sHShellFolderView_Message               uintptr
   170  	sHUpdateImage                           uintptr
   171  	sHUpdateRecycleBinIcon                  uintptr
   172  	sHValidateUNC                           uintptr
   173  	setCurrentProcessExplicitAppUserModelID uintptr
   174  	sheChangeDir                            uintptr
   175  	sheGetDir                               uintptr
   176  	shellAbout                              uintptr
   177  	shellExecute                            uintptr
   178  	shell_GetImageLists                     uintptr
   179  	shell_MergeMenus                        uintptr
   180  	shell_NotifyIcon                        uintptr
   181  	signalFileOpen                          uintptr
   182  	wOWShellExecute                         uintptr
   183  	writeCabinetState                       uintptr
   184  )
   185  
   186  func init() {
   187  	// Library
   188  	libshell32 = doLoadLibrary("shell32.dll")
   189  
   190  	// Functions
   191  	sHAddFromPropSheetExtArray = doGetProcAddress(libshell32, "SHAddFromPropSheetExtArray")
   192  	sHCreatePropSheetExtArray = doGetProcAddress(libshell32, "SHCreatePropSheetExtArray")
   193  	sHDestroyPropSheetExtArray = doGetProcAddress(libshell32, "SHDestroyPropSheetExtArray")
   194  	sHReplaceFromPropSheetExtArray = doGetProcAddress(libshell32, "SHReplaceFromPropSheetExtArray")
   195  	cDefFolderMenu_Create2 = doGetProcAddress(libshell32, "CDefFolderMenu_Create2")
   196  	cIDLData_CreateFromIDArray = doGetProcAddress(libshell32, "CIDLData_CreateFromIDArray")
   197  	callCPLEntry16 = doGetProcAddress(libshell32, "CallCPLEntry16")
   198  	checkEscapes = doGetProcAddress(libshell32, "CheckEscapesW")
   199  	control_FillCache_RunDLL = doGetProcAddress(libshell32, "Control_FillCache_RunDLLW")
   200  	control_RunDLL = doGetProcAddress(libshell32, "Control_RunDLLW")
   201  	dAD_AutoScroll = doGetProcAddress(libshell32, "DAD_AutoScroll")
   202  	dAD_DragEnterEx = doGetProcAddress(libshell32, "DAD_DragEnterEx")
   203  	dAD_DragLeave = doGetProcAddress(libshell32, "DAD_DragLeave")
   204  	dAD_DragMove = doGetProcAddress(libshell32, "DAD_DragMove")
   205  	dAD_SetDragImage = doGetProcAddress(libshell32, "DAD_SetDragImage")
   206  	dAD_ShowDragImage = doGetProcAddress(libshell32, "DAD_ShowDragImage")
   207  	doEnvironmentSubst = doGetProcAddress(libshell32, "DoEnvironmentSubstW")
   208  	dragAcceptFiles = doGetProcAddress(libshell32, "DragAcceptFiles")
   209  	dragFinish = doGetProcAddress(libshell32, "DragFinish")
   210  	dragQueryFile = doGetProcAddress(libshell32, "DragQueryFileW")
   211  	dragQueryPoint = doGetProcAddress(libshell32, "DragQueryPoint")
   212  	driveType = doGetProcAddress(libshell32, "DriveType")
   213  	duplicateIcon = doGetProcAddress(libshell32, "DuplicateIcon")
   214  	extractAssociatedIconEx = doGetProcAddress(libshell32, "ExtractAssociatedIconExW")
   215  	extractAssociatedIcon = doGetProcAddress(libshell32, "ExtractAssociatedIconW")
   216  	extractIconEx = doGetProcAddress(libshell32, "ExtractIconExW")
   217  	extractIcon = doGetProcAddress(libshell32, "ExtractIconW")
   218  	extractVersionResource16W = doGetProcAddress(libshell32, "ExtractVersionResource16W")
   219  	findExecutable = doGetProcAddress(libshell32, "FindExecutableW")
   220  	freeIconList = doGetProcAddress(libshell32, "FreeIconList")
   221  	getCurrentProcessExplicitAppUserModelID = doGetProcAddress(libshell32, "GetCurrentProcessExplicitAppUserModelID")
   222  	iLAppendID = doGetProcAddress(libshell32, "ILAppendID")
   223  	iLClone = doGetProcAddress(libshell32, "ILClone")
   224  	iLCloneFirst = doGetProcAddress(libshell32, "ILCloneFirst")
   225  	iLCombine = doGetProcAddress(libshell32, "ILCombine")
   226  	iLCreateFromPath = doGetProcAddress(libshell32, "ILCreateFromPathW")
   227  	iLFindChild = doGetProcAddress(libshell32, "ILFindChild")
   228  	iLFindLastID = doGetProcAddress(libshell32, "ILFindLastID")
   229  	iLFree = doGetProcAddress(libshell32, "ILFree")
   230  	iLGetNext = doGetProcAddress(libshell32, "ILGetNext")
   231  	iLGetSize = doGetProcAddress(libshell32, "ILGetSize")
   232  	iLIsEqual = doGetProcAddress(libshell32, "ILIsEqual")
   233  	iLIsParent = doGetProcAddress(libshell32, "ILIsParent")
   234  	iLLoadFromStream = doGetProcAddress(libshell32, "ILLoadFromStream")
   235  	iLRemoveLastID = doGetProcAddress(libshell32, "ILRemoveLastID")
   236  	iLSaveToStream = doGetProcAddress(libshell32, "ILSaveToStream")
   237  	initNetworkAddressControl = doGetProcAddress(libshell32, "InitNetworkAddressControl")
   238  	isLFNDrive = doGetProcAddress(libshell32, "IsLFNDriveW")
   239  	isNetDrive = doGetProcAddress(libshell32, "IsNetDrive")
   240  	isUserAnAdmin = doGetProcAddress(libshell32, "IsUserAnAdmin")
   241  	openAs_RunDLL = doGetProcAddress(libshell32, "OpenAs_RunDLLW")
   242  	pathCleanupSpec = doGetProcAddress(libshell32, "PathCleanupSpec")
   243  	pathYetAnotherMakeUniqueName = doGetProcAddress(libshell32, "PathYetAnotherMakeUniqueName")
   244  	pickIconDlg = doGetProcAddress(libshell32, "PickIconDlg")
   245  	readCabinetState = doGetProcAddress(libshell32, "ReadCabinetState")
   246  	realDriveType = doGetProcAddress(libshell32, "RealDriveType")
   247  	regenerateUserEnvironment = doGetProcAddress(libshell32, "RegenerateUserEnvironment")
   248  	restartDialog = doGetProcAddress(libshell32, "RestartDialog")
   249  	restartDialogEx = doGetProcAddress(libshell32, "RestartDialogEx")
   250  	sHAddToRecentDocs = doGetProcAddress(libshell32, "SHAddToRecentDocs")
   251  	sHAlloc = doGetProcAddress(libshell32, "SHAlloc")
   252  	sHAppBarMessage = doGetProcAddress(libshell32, "SHAppBarMessage")
   253  	sHAssocEnumHandlers = doGetProcAddress(libshell32, "SHAssocEnumHandlers")
   254  	sHBindToParent = doGetProcAddress(libshell32, "SHBindToParent")
   255  	sHBrowseForFolder = doGetProcAddress(libshell32, "SHBrowseForFolderW")
   256  	sHChangeNotification_Lock = doGetProcAddress(libshell32, "SHChangeNotification_Lock")
   257  	sHChangeNotification_Unlock = doGetProcAddress(libshell32, "SHChangeNotification_Unlock")
   258  	sHChangeNotify = doGetProcAddress(libshell32, "SHChangeNotify")
   259  	sHChangeNotifyDeregister = doGetProcAddress(libshell32, "SHChangeNotifyDeregister")
   260  	sHChangeNotifyRegister = doGetProcAddress(libshell32, "SHChangeNotifyRegister")
   261  	sHCloneSpecialIDList = doGetProcAddress(libshell32, "SHCloneSpecialIDList")
   262  	sHCoCreateInstance = doGetProcAddress(libshell32, "SHCoCreateInstance")
   263  	sHCreateDefaultContextMenu = doGetProcAddress(libshell32, "SHCreateDefaultContextMenu")
   264  	sHCreateDirectory = doGetProcAddress(libshell32, "SHCreateDirectory")
   265  	sHCreateDirectoryEx = doGetProcAddress(libshell32, "SHCreateDirectoryExW")
   266  	sHCreateFileExtractIconW = doGetProcAddress(libshell32, "SHCreateFileExtractIconW")
   267  	sHCreateItemFromIDList = doGetProcAddress(libshell32, "SHCreateItemFromIDList")
   268  	sHCreateItemFromParsingName = doGetProcAddress(libshell32, "SHCreateItemFromParsingName")
   269  	sHCreateQueryCancelAutoPlayMoniker = doGetProcAddress(libshell32, "SHCreateQueryCancelAutoPlayMoniker")
   270  	sHCreateShellFolderView = doGetProcAddress(libshell32, "SHCreateShellFolderView")
   271  	sHCreateShellFolderViewEx = doGetProcAddress(libshell32, "SHCreateShellFolderViewEx")
   272  	sHCreateShellItem = doGetProcAddress(libshell32, "SHCreateShellItem")
   273  	sHCreateShellItemArray = doGetProcAddress(libshell32, "SHCreateShellItemArray")
   274  	sHCreateShellItemArrayFromDataObject = doGetProcAddress(libshell32, "SHCreateShellItemArrayFromDataObject")
   275  	sHCreateShellItemArrayFromIDLists = doGetProcAddress(libshell32, "SHCreateShellItemArrayFromIDLists")
   276  	sHCreateShellItemArrayFromShellItem = doGetProcAddress(libshell32, "SHCreateShellItemArrayFromShellItem")
   277  	sHCreateStdEnumFmtEtc = doGetProcAddress(libshell32, "SHCreateStdEnumFmtEtc")
   278  	sHDefExtractIcon = doGetProcAddress(libshell32, "SHDefExtractIconW")
   279  	sHDoDragDrop = doGetProcAddress(libshell32, "SHDoDragDrop")
   280  	sHEmptyRecycleBin = doGetProcAddress(libshell32, "SHEmptyRecycleBinW")
   281  	sHEnumerateUnreadMailAccountsW = doGetProcAddress(libshell32, "SHEnumerateUnreadMailAccountsW")
   282  	sHFileOperation = doGetProcAddress(libshell32, "SHFileOperationW")
   283  	sHFindFiles = doGetProcAddress(libshell32, "SHFindFiles")
   284  	sHFind_InitMenuPopup = doGetProcAddress(libshell32, "SHFind_InitMenuPopup")
   285  	sHFlushClipboard = doGetProcAddress(libshell32, "SHFlushClipboard")
   286  	sHFlushSFCache = doGetProcAddress(libshell32, "SHFlushSFCache")
   287  	sHFormatDrive = doGetProcAddress(libshell32, "SHFormatDrive")
   288  	sHFree = doGetProcAddress(libshell32, "SHFree")
   289  	sHFreeNameMappings = doGetProcAddress(libshell32, "SHFreeNameMappings")
   290  	sHGetDataFromIDList = doGetProcAddress(libshell32, "SHGetDataFromIDListW")
   291  	sHGetDesktopFolder = doGetProcAddress(libshell32, "SHGetDesktopFolder")
   292  	sHGetFileInfo = doGetProcAddress(libshell32, "SHGetFileInfoW")
   293  	sHGetFolderLocation = doGetProcAddress(libshell32, "SHGetFolderLocation")
   294  	sHGetFolderPathAndSubDir = doGetProcAddress(libshell32, "SHGetFolderPathAndSubDirW")
   295  	sHGetFolderPathEx = doGetProcAddress(libshell32, "SHGetFolderPathEx")
   296  	sHGetFolderPath = doGetProcAddress(libshell32, "SHGetFolderPathW")
   297  	sHGetIDListFromObject = doGetProcAddress(libshell32, "SHGetIDListFromObject")
   298  	sHGetIconOverlayIndex = doGetProcAddress(libshell32, "SHGetIconOverlayIndexW")
   299  	sHGetImageList = doGetProcAddress(libshell32, "SHGetImageList")
   300  	sHGetInstanceExplorer = doGetProcAddress(libshell32, "SHGetInstanceExplorer")
   301  	sHGetItemFromDataObject = doGetProcAddress(libshell32, "SHGetItemFromDataObject")
   302  	sHGetItemFromObject = doGetProcAddress(libshell32, "SHGetItemFromObject")
   303  	sHGetKnownFolderIDList = doGetProcAddress(libshell32, "SHGetKnownFolderIDList")
   304  	sHGetKnownFolderItem = doGetProcAddress(libshell32, "SHGetKnownFolderItem")
   305  	sHGetKnownFolderPath = doGetProcAddress(libshell32, "SHGetKnownFolderPath")
   306  	sHGetLocalizedName = doGetProcAddress(libshell32, "SHGetLocalizedName")
   307  	sHGetMalloc = doGetProcAddress(libshell32, "SHGetMalloc")
   308  	sHGetNameFromIDList = doGetProcAddress(libshell32, "SHGetNameFromIDList")
   309  	sHGetNewLinkInfo = doGetProcAddress(libshell32, "SHGetNewLinkInfoW")
   310  	sHGetPathFromIDList = doGetProcAddress(libshell32, "SHGetPathFromIDListW")
   311  	sHGetPropertyStoreForWindow = doGetProcAddress(libshell32, "SHGetPropertyStoreForWindow")
   312  	sHGetPropertyStoreFromParsingName = doGetProcAddress(libshell32, "SHGetPropertyStoreFromParsingName")
   313  	sHGetRealIDL = doGetProcAddress(libshell32, "SHGetRealIDL")
   314  	sHGetSetSettings = doGetProcAddress(libshell32, "SHGetSetSettings")
   315  	sHGetSettings = doGetProcAddress(libshell32, "SHGetSettings")
   316  	sHGetSpecialFolderLocation = doGetProcAddress(libshell32, "SHGetSpecialFolderLocation")
   317  	sHGetSpecialFolderPath = doGetProcAddress(libshell32, "SHGetSpecialFolderPathW")
   318  	sHGetStockIconInfo = doGetProcAddress(libshell32, "SHGetStockIconInfo")
   319  	sHHandleUpdateImage = doGetProcAddress(libshell32, "SHHandleUpdateImage")
   320  	sHHelpShortcuts_RunDLL = doGetProcAddress(libshell32, "SHHelpShortcuts_RunDLLW")
   321  	sHIsFileAvailableOffline = doGetProcAddress(libshell32, "SHIsFileAvailableOffline")
   322  	sHLimitInputEdit = doGetProcAddress(libshell32, "SHLimitInputEdit")
   323  	sHLoadInProc = doGetProcAddress(libshell32, "SHLoadInProc")
   324  	sHLoadNonloadedIconOverlayIdentifiers = doGetProcAddress(libshell32, "SHLoadNonloadedIconOverlayIdentifiers")
   325  	sHMapIDListToImageListIndexAsync = doGetProcAddress(libshell32, "SHMapIDListToImageListIndexAsync")
   326  	sHMapPIDLToSystemImageListIndex = doGetProcAddress(libshell32, "SHMapPIDLToSystemImageListIndex")
   327  	sHObjectProperties = doGetProcAddress(libshell32, "SHObjectProperties")
   328  	sHOpenFolderAndSelectItems = doGetProcAddress(libshell32, "SHOpenFolderAndSelectItems")
   329  	sHParseDisplayName = doGetProcAddress(libshell32, "SHParseDisplayName")
   330  	sHPathPrepareForWrite = doGetProcAddress(libshell32, "SHPathPrepareForWriteW")
   331  	sHPropStgCreate = doGetProcAddress(libshell32, "SHPropStgCreate")
   332  	sHPropStgReadMultiple = doGetProcAddress(libshell32, "SHPropStgReadMultiple")
   333  	sHPropStgWriteMultiple = doGetProcAddress(libshell32, "SHPropStgWriteMultiple")
   334  	sHQueryRecycleBin = doGetProcAddress(libshell32, "SHQueryRecycleBinW")
   335  	sHQueryUserNotificationState = doGetProcAddress(libshell32, "SHQueryUserNotificationState")
   336  	sHRemoveLocalizedName = doGetProcAddress(libshell32, "SHRemoveLocalizedName")
   337  	sHRestricted = doGetProcAddress(libshell32, "SHRestricted")
   338  	sHRunControlPanel = doGetProcAddress(libshell32, "SHRunControlPanel")
   339  	sHSetInstanceExplorer = doGetProcAddress(libshell32, "SHSetInstanceExplorer")
   340  	sHSetLocalizedName = doGetProcAddress(libshell32, "SHSetLocalizedName")
   341  	sHSetUnreadMailCountW = doGetProcAddress(libshell32, "SHSetUnreadMailCountW")
   342  	sHShellFolderView_Message = doGetProcAddress(libshell32, "SHShellFolderView_Message")
   343  	sHUpdateImage = doGetProcAddress(libshell32, "SHUpdateImageW")
   344  	sHUpdateRecycleBinIcon = doGetProcAddress(libshell32, "SHUpdateRecycleBinIcon")
   345  	sHValidateUNC = doGetProcAddress(libshell32, "SHValidateUNC")
   346  	setCurrentProcessExplicitAppUserModelID = doGetProcAddress(libshell32, "SetCurrentProcessExplicitAppUserModelID")
   347  	sheChangeDir = doGetProcAddress(libshell32, "SheChangeDirW")
   348  	sheGetDir = doGetProcAddress(libshell32, "SheGetDirW")
   349  	shellAbout = doGetProcAddress(libshell32, "ShellAboutW")
   350  	shellExecute = doGetProcAddress(libshell32, "ShellExecuteW")
   351  	shell_GetImageLists = doGetProcAddress(libshell32, "Shell_GetImageLists")
   352  	shell_MergeMenus = doGetProcAddress(libshell32, "Shell_MergeMenus")
   353  	shell_NotifyIcon = doGetProcAddress(libshell32, "Shell_NotifyIconW")
   354  	signalFileOpen = doGetProcAddress(libshell32, "SignalFileOpen")
   355  	wOWShellExecute = doGetProcAddress(libshell32, "WOWShellExecute")
   356  	writeCabinetState = doGetProcAddress(libshell32, "WriteCabinetState")
   357  }
   358  
   359  func SHAddFromPropSheetExtArray(hpsxa HPSXA, lpfnAddPage LPFNADDPROPSHEETPAGE, lParam LPARAM) UINT {
   360  	lpfnAddPageCallback := syscall.NewCallback(func(unnamed0RawArg HPROPSHEETPAGE, unnamed1RawArg LPARAM) uintptr {
   361  		ret := lpfnAddPage(unnamed0RawArg, unnamed1RawArg)
   362  		return uintptr(ret)
   363  	})
   364  	ret1 := syscall3(sHAddFromPropSheetExtArray, 3,
   365  		uintptr(hpsxa),
   366  		lpfnAddPageCallback,
   367  		uintptr(lParam))
   368  	return UINT(ret1)
   369  }
   370  
   371  func SHCreatePropSheetExtArray(hKey HKEY, pszSubKey string, max_iface UINT) HPSXA {
   372  	pszSubKeyStr := unicode16FromString(pszSubKey)
   373  	ret1 := syscall3(sHCreatePropSheetExtArray, 3,
   374  		uintptr(hKey),
   375  		uintptr(unsafe.Pointer(&pszSubKeyStr[0])),
   376  		uintptr(max_iface))
   377  	return HPSXA(ret1)
   378  }
   379  
   380  func SHDestroyPropSheetExtArray(hpsxa HPSXA) {
   381  	syscall3(sHDestroyPropSheetExtArray, 1,
   382  		uintptr(hpsxa),
   383  		0,
   384  		0)
   385  }
   386  
   387  func SHReplaceFromPropSheetExtArray(hpsxa HPSXA, uPageID UINT, lpfnReplaceWith LPFNADDPROPSHEETPAGE, lParam LPARAM) UINT {
   388  	lpfnReplaceWithCallback := syscall.NewCallback(func(unnamed0RawArg HPROPSHEETPAGE, unnamed1RawArg LPARAM) uintptr {
   389  		ret := lpfnReplaceWith(unnamed0RawArg, unnamed1RawArg)
   390  		return uintptr(ret)
   391  	})
   392  	ret1 := syscall6(sHReplaceFromPropSheetExtArray, 4,
   393  		uintptr(hpsxa),
   394  		uintptr(uPageID),
   395  		lpfnReplaceWithCallback,
   396  		uintptr(lParam),
   397  		0,
   398  		0)
   399  	return UINT(ret1)
   400  }
   401  
   402  func CDefFolderMenu_Create2(pidlFolder /*const*/ LPCITEMIDLIST, hwnd HWND, cidl UINT, apidl *LPCITEMIDLIST, psf *IShellFolder, lpfn LPFNDFMCALLBACK, nKeys UINT, ahkeys /*const*/ *HKEY, ppcm **IContextMenu) HRESULT {
   403  	lpfnCallback := syscall.NewCallback(func(psfRawArg *IShellFolder, hwndRawArg HWND, pdtobjRawArg *IDataObject, uMsgRawArg UINT, wParamRawArg WPARAM, lParamRawArg LPARAM) uintptr {
   404  		ret := lpfn(psfRawArg, hwndRawArg, pdtobjRawArg, uMsgRawArg, wParamRawArg, lParamRawArg)
   405  		return uintptr(ret)
   406  	})
   407  	ret1 := syscall9(cDefFolderMenu_Create2, 9,
   408  		uintptr(unsafe.Pointer(pidlFolder)),
   409  		uintptr(hwnd),
   410  		uintptr(cidl),
   411  		uintptr(unsafe.Pointer(apidl)),
   412  		uintptr(unsafe.Pointer(psf)),
   413  		lpfnCallback,
   414  		uintptr(nKeys),
   415  		uintptr(unsafe.Pointer(ahkeys)),
   416  		uintptr(unsafe.Pointer(ppcm)))
   417  	return HRESULT(ret1)
   418  }
   419  
   420  func CIDLData_CreateFromIDArray(pidlFolder /*const*/ LPCITEMIDLIST, cpidlFiles DWORD, lppidlFiles *LPCITEMIDLIST, ppdataObject *LPDATAOBJECT) HRESULT {
   421  	ret1 := syscall6(cIDLData_CreateFromIDArray, 4,
   422  		uintptr(unsafe.Pointer(pidlFolder)),
   423  		uintptr(cpidlFiles),
   424  		uintptr(unsafe.Pointer(lppidlFiles)),
   425  		uintptr(unsafe.Pointer(ppdataObject)),
   426  		0,
   427  		0)
   428  	return HRESULT(ret1)
   429  }
   430  
   431  func CallCPLEntry16(hMod HMODULE, pFunc FARPROC, dw3 DWORD, dw4 DWORD, dw5 DWORD, dw6 DWORD) DWORD {
   432  	pFuncCallback := syscall.NewCallback(func() uintptr {
   433  		ret := pFunc()
   434  		return uintptr(unsafe.Pointer(ret))
   435  	})
   436  	ret1 := syscall6(callCPLEntry16, 6,
   437  		uintptr(hMod),
   438  		pFuncCallback,
   439  		uintptr(dw3),
   440  		uintptr(dw4),
   441  		uintptr(dw5),
   442  		uintptr(dw6))
   443  	return DWORD(ret1)
   444  }
   445  
   446  func CheckEscapes(string LPWSTR, aLen DWORD) DWORD {
   447  	ret1 := syscall3(checkEscapes, 2,
   448  		uintptr(unsafe.Pointer(string)),
   449  		uintptr(aLen),
   450  		0)
   451  	return DWORD(ret1)
   452  }
   453  
   454  func Control_FillCache_RunDLL(hWnd HWND, hModule HANDLE, w DWORD, x DWORD) HRESULT {
   455  	ret1 := syscall6(control_FillCache_RunDLL, 4,
   456  		uintptr(hWnd),
   457  		uintptr(hModule),
   458  		uintptr(w),
   459  		uintptr(x),
   460  		0,
   461  		0)
   462  	return HRESULT(ret1)
   463  }
   464  
   465  func Control_RunDLL(hWnd HWND, hInst HINSTANCE, cmd string, nCmdShow DWORD) {
   466  	cmdStr := unicode16FromString(cmd)
   467  	syscall6(control_RunDLL, 4,
   468  		uintptr(hWnd),
   469  		uintptr(hInst),
   470  		uintptr(unsafe.Pointer(&cmdStr[0])),
   471  		uintptr(nCmdShow),
   472  		0,
   473  		0)
   474  }
   475  
   476  func DAD_AutoScroll(hwnd HWND, samples *AUTO_SCROLL_DATA, pt *POINT) bool {
   477  	ret1 := syscall3(dAD_AutoScroll, 3,
   478  		uintptr(hwnd),
   479  		uintptr(unsafe.Pointer(samples)),
   480  		uintptr(unsafe.Pointer(pt)))
   481  	return ret1 != 0
   482  }
   483  
   484  func DAD_DragEnterEx(hwnd HWND, p POINT) bool {
   485  	ret1 := syscall3(dAD_DragEnterEx, 3,
   486  		uintptr(hwnd),
   487  		uintptr(p.X),
   488  		uintptr(p.Y))
   489  	return ret1 != 0
   490  }
   491  
   492  func DAD_DragLeave() bool {
   493  	ret1 := syscall3(dAD_DragLeave, 0,
   494  		0,
   495  		0,
   496  		0)
   497  	return ret1 != 0
   498  }
   499  
   500  func DAD_DragMove(p POINT) bool {
   501  	ret1 := syscall3(dAD_DragMove, 2,
   502  		uintptr(p.X),
   503  		uintptr(p.Y),
   504  		0)
   505  	return ret1 != 0
   506  }
   507  
   508  func DAD_SetDragImage(himlTrack HIMAGELIST, lppt *POINT) bool {
   509  	ret1 := syscall3(dAD_SetDragImage, 2,
   510  		uintptr(himlTrack),
   511  		uintptr(unsafe.Pointer(lppt)),
   512  		0)
   513  	return ret1 != 0
   514  }
   515  
   516  func DAD_ShowDragImage(bShow bool) bool {
   517  	ret1 := syscall3(dAD_ShowDragImage, 1,
   518  		getUintptrFromBool(bShow),
   519  		0,
   520  		0)
   521  	return ret1 != 0
   522  }
   523  
   524  func DoEnvironmentSubst(pszString LPWSTR, cchString UINT) DWORD {
   525  	ret1 := syscall3(doEnvironmentSubst, 2,
   526  		uintptr(unsafe.Pointer(pszString)),
   527  		uintptr(cchString),
   528  		0)
   529  	return DWORD(ret1)
   530  }
   531  
   532  func DragAcceptFiles(hWnd HWND, b bool) {
   533  	syscall3(dragAcceptFiles, 2,
   534  		uintptr(hWnd),
   535  		getUintptrFromBool(b),
   536  		0)
   537  }
   538  
   539  func DragFinish(h HDROP) {
   540  	syscall3(dragFinish, 1,
   541  		uintptr(h),
   542  		0,
   543  		0)
   544  }
   545  
   546  func DragQueryFile(hDrop HDROP, lFile UINT, lpszwFile LPWSTR, lLength UINT) UINT {
   547  	ret1 := syscall6(dragQueryFile, 4,
   548  		uintptr(hDrop),
   549  		uintptr(lFile),
   550  		uintptr(unsafe.Pointer(lpszwFile)),
   551  		uintptr(lLength),
   552  		0,
   553  		0)
   554  	return UINT(ret1)
   555  }
   556  
   557  func DragQueryPoint(hDrop HDROP, p *POINT) bool {
   558  	ret1 := syscall3(dragQueryPoint, 2,
   559  		uintptr(hDrop),
   560  		uintptr(unsafe.Pointer(p)),
   561  		0)
   562  	return ret1 != 0
   563  }
   564  
   565  func DriveType(u int32) int32 {
   566  	ret1 := syscall3(driveType, 1,
   567  		uintptr(u),
   568  		0,
   569  		0)
   570  	return int32(ret1)
   571  }
   572  
   573  func DuplicateIcon(hInstance HINSTANCE, hIcon HICON) HICON {
   574  	ret1 := syscall3(duplicateIcon, 2,
   575  		uintptr(hInstance),
   576  		uintptr(hIcon),
   577  		0)
   578  	return HICON(ret1)
   579  }
   580  
   581  func ExtractAssociatedIconEx(hInst HINSTANCE, lpIconPath LPWSTR, lpiIconIdx *uint16, lpiIconId *uint16) HICON {
   582  	ret1 := syscall6(extractAssociatedIconEx, 4,
   583  		uintptr(hInst),
   584  		uintptr(unsafe.Pointer(lpIconPath)),
   585  		uintptr(unsafe.Pointer(lpiIconIdx)),
   586  		uintptr(unsafe.Pointer(lpiIconId)),
   587  		0,
   588  		0)
   589  	return HICON(ret1)
   590  }
   591  
   592  func ExtractAssociatedIcon(hInst HINSTANCE, lpIconPath LPWSTR, lpiIcon *uint16) HICON {
   593  	ret1 := syscall3(extractAssociatedIcon, 3,
   594  		uintptr(hInst),
   595  		uintptr(unsafe.Pointer(lpIconPath)),
   596  		uintptr(unsafe.Pointer(lpiIcon)))
   597  	return HICON(ret1)
   598  }
   599  
   600  func ExtractIconEx(lpszFile string, nIconIndex INT, phiconLarge *HICON, phiconSmall *HICON, nIcons UINT) UINT {
   601  	lpszFileStr := unicode16FromString(lpszFile)
   602  	ret1 := syscall6(extractIconEx, 5,
   603  		uintptr(unsafe.Pointer(&lpszFileStr[0])),
   604  		uintptr(nIconIndex),
   605  		uintptr(unsafe.Pointer(phiconLarge)),
   606  		uintptr(unsafe.Pointer(phiconSmall)),
   607  		uintptr(nIcons),
   608  		0)
   609  	return UINT(ret1)
   610  }
   611  
   612  func ExtractIcon(hInstance HINSTANCE, lpszFile string, nIconIndex UINT) HICON {
   613  	lpszFileStr := unicode16FromString(lpszFile)
   614  	ret1 := syscall3(extractIcon, 3,
   615  		uintptr(hInstance),
   616  		uintptr(unsafe.Pointer(&lpszFileStr[0])),
   617  		uintptr(nIconIndex))
   618  	return HICON(ret1)
   619  }
   620  
   621  func ExtractVersionResource16W(s LPWSTR, d DWORD) bool {
   622  	ret1 := syscall3(extractVersionResource16W, 2,
   623  		uintptr(unsafe.Pointer(s)),
   624  		uintptr(d),
   625  		0)
   626  	return ret1 != 0
   627  }
   628  
   629  func FindExecutable(lpFile string, lpDirectory string, lpResult LPWSTR) HINSTANCE {
   630  	lpFileStr := unicode16FromString(lpFile)
   631  	lpDirectoryStr := unicode16FromString(lpDirectory)
   632  	ret1 := syscall3(findExecutable, 3,
   633  		uintptr(unsafe.Pointer(&lpFileStr[0])),
   634  		uintptr(unsafe.Pointer(&lpDirectoryStr[0])),
   635  		uintptr(unsafe.Pointer(lpResult)))
   636  	return HINSTANCE(ret1)
   637  }
   638  
   639  func FreeIconList(dw DWORD) {
   640  	syscall3(freeIconList, 1,
   641  		uintptr(dw),
   642  		0,
   643  		0)
   644  }
   645  
   646  func GetCurrentProcessExplicitAppUserModelID(appid *PWSTR) HRESULT {
   647  	ret1 := syscall3(getCurrentProcessExplicitAppUserModelID, 1,
   648  		uintptr(unsafe.Pointer(appid)),
   649  		0,
   650  		0)
   651  	return HRESULT(ret1)
   652  }
   653  
   654  func ILAppendID(pidl LPITEMIDLIST, item /*const*/ *SHITEMID, bEnd bool) LPITEMIDLIST {
   655  	ret1 := syscall3(iLAppendID, 3,
   656  		uintptr(unsafe.Pointer(pidl)),
   657  		uintptr(unsafe.Pointer(item)),
   658  		getUintptrFromBool(bEnd))
   659  	return (LPITEMIDLIST)(unsafe.Pointer(ret1))
   660  }
   661  
   662  func ILClone(pidl /*const*/ LPCITEMIDLIST) LPITEMIDLIST {
   663  	ret1 := syscall3(iLClone, 1,
   664  		uintptr(unsafe.Pointer(pidl)),
   665  		0,
   666  		0)
   667  	return (LPITEMIDLIST)(unsafe.Pointer(ret1))
   668  }
   669  
   670  func ILCloneFirst(pidl /*const*/ LPCITEMIDLIST) LPITEMIDLIST {
   671  	ret1 := syscall3(iLCloneFirst, 1,
   672  		uintptr(unsafe.Pointer(pidl)),
   673  		0,
   674  		0)
   675  	return (LPITEMIDLIST)(unsafe.Pointer(ret1))
   676  }
   677  
   678  func ILCombine(pidl1 /*const*/ LPCITEMIDLIST, pidl2 /*const*/ LPCITEMIDLIST) LPITEMIDLIST {
   679  	ret1 := syscall3(iLCombine, 2,
   680  		uintptr(unsafe.Pointer(pidl1)),
   681  		uintptr(unsafe.Pointer(pidl2)),
   682  		0)
   683  	return (LPITEMIDLIST)(unsafe.Pointer(ret1))
   684  }
   685  
   686  func ILCreateFromPath(path string) LPITEMIDLIST {
   687  	pathStr := unicode16FromString(path)
   688  	ret1 := syscall3(iLCreateFromPath, 1,
   689  		uintptr(unsafe.Pointer(&pathStr[0])),
   690  		0,
   691  		0)
   692  	return (LPITEMIDLIST)(unsafe.Pointer(ret1))
   693  }
   694  
   695  func ILFindChild(pidl1 /*const*/ LPCITEMIDLIST, pidl2 /*const*/ LPCITEMIDLIST) LPITEMIDLIST {
   696  	ret1 := syscall3(iLFindChild, 2,
   697  		uintptr(unsafe.Pointer(pidl1)),
   698  		uintptr(unsafe.Pointer(pidl2)),
   699  		0)
   700  	return (LPITEMIDLIST)(unsafe.Pointer(ret1))
   701  }
   702  
   703  func ILFindLastID(pidl /*const*/ LPCITEMIDLIST) LPITEMIDLIST {
   704  	ret1 := syscall3(iLFindLastID, 1,
   705  		uintptr(unsafe.Pointer(pidl)),
   706  		0,
   707  		0)
   708  	return (LPITEMIDLIST)(unsafe.Pointer(ret1))
   709  }
   710  
   711  func ILFree(pidl LPITEMIDLIST) {
   712  	syscall3(iLFree, 1,
   713  		uintptr(unsafe.Pointer(pidl)),
   714  		0,
   715  		0)
   716  }
   717  
   718  func ILGetNext(pidl /*const*/ LPCITEMIDLIST) LPITEMIDLIST {
   719  	ret1 := syscall3(iLGetNext, 1,
   720  		uintptr(unsafe.Pointer(pidl)),
   721  		0,
   722  		0)
   723  	return (LPITEMIDLIST)(unsafe.Pointer(ret1))
   724  }
   725  
   726  func ILGetSize(pidl /*const*/ LPCITEMIDLIST) UINT {
   727  	ret1 := syscall3(iLGetSize, 1,
   728  		uintptr(unsafe.Pointer(pidl)),
   729  		0,
   730  		0)
   731  	return UINT(ret1)
   732  }
   733  
   734  func ILIsEqual(pidl1 /*const*/ LPCITEMIDLIST, pidl2 /*const*/ LPCITEMIDLIST) bool {
   735  	ret1 := syscall3(iLIsEqual, 2,
   736  		uintptr(unsafe.Pointer(pidl1)),
   737  		uintptr(unsafe.Pointer(pidl2)),
   738  		0)
   739  	return ret1 != 0
   740  }
   741  
   742  func ILIsParent(pidlParent /*const*/ LPCITEMIDLIST, pidlChild /*const*/ LPCITEMIDLIST, bImmediate bool) bool {
   743  	ret1 := syscall3(iLIsParent, 3,
   744  		uintptr(unsafe.Pointer(pidlParent)),
   745  		uintptr(unsafe.Pointer(pidlChild)),
   746  		getUintptrFromBool(bImmediate))
   747  	return ret1 != 0
   748  }
   749  
   750  func ILLoadFromStream(pStream *IStream, ppPidl *LPITEMIDLIST) HRESULT {
   751  	ret1 := syscall3(iLLoadFromStream, 2,
   752  		uintptr(unsafe.Pointer(pStream)),
   753  		uintptr(unsafe.Pointer(ppPidl)),
   754  		0)
   755  	return HRESULT(ret1)
   756  }
   757  
   758  func ILRemoveLastID(pidl LPITEMIDLIST) bool {
   759  	ret1 := syscall3(iLRemoveLastID, 1,
   760  		uintptr(unsafe.Pointer(pidl)),
   761  		0,
   762  		0)
   763  	return ret1 != 0
   764  }
   765  
   766  func ILSaveToStream(pStream *IStream, pPidl /*const*/ LPCITEMIDLIST) HRESULT {
   767  	ret1 := syscall3(iLSaveToStream, 2,
   768  		uintptr(unsafe.Pointer(pStream)),
   769  		uintptr(unsafe.Pointer(pPidl)),
   770  		0)
   771  	return HRESULT(ret1)
   772  }
   773  
   774  func InitNetworkAddressControl() bool {
   775  	ret1 := syscall3(initNetworkAddressControl, 0,
   776  		0,
   777  		0,
   778  		0)
   779  	return ret1 != 0
   780  }
   781  
   782  func IsLFNDrive(lpszPath string) bool {
   783  	lpszPathStr := unicode16FromString(lpszPath)
   784  	ret1 := syscall3(isLFNDrive, 1,
   785  		uintptr(unsafe.Pointer(&lpszPathStr[0])),
   786  		0,
   787  		0)
   788  	return ret1 != 0
   789  }
   790  
   791  func IsNetDrive(drive int32) int32 {
   792  	ret1 := syscall3(isNetDrive, 1,
   793  		uintptr(drive),
   794  		0,
   795  		0)
   796  	return int32(ret1)
   797  }
   798  
   799  func IsUserAnAdmin() bool {
   800  	ret1 := syscall3(isUserAnAdmin, 0,
   801  		0,
   802  		0,
   803  		0)
   804  	return ret1 != 0
   805  }
   806  
   807  func OpenAs_RunDLL(hwnd HWND, hinst HINSTANCE, cmdline string, cmdshow int32) {
   808  	cmdlineStr := unicode16FromString(cmdline)
   809  	syscall6(openAs_RunDLL, 4,
   810  		uintptr(hwnd),
   811  		uintptr(hinst),
   812  		uintptr(unsafe.Pointer(&cmdlineStr[0])),
   813  		uintptr(cmdshow),
   814  		0,
   815  		0)
   816  }
   817  
   818  func PathCleanupSpec(lpszPathW string, lpszFileW LPWSTR) int32 {
   819  	lpszPathWStr := unicode16FromString(lpszPathW)
   820  	ret1 := syscall3(pathCleanupSpec, 2,
   821  		uintptr(unsafe.Pointer(&lpszPathWStr[0])),
   822  		uintptr(unsafe.Pointer(lpszFileW)),
   823  		0)
   824  	return int32(ret1)
   825  }
   826  
   827  func PathYetAnotherMakeUniqueName(buffer LPWSTR, path string, shortname string, longname string) bool {
   828  	pathStr := unicode16FromString(path)
   829  	shortnameStr := unicode16FromString(shortname)
   830  	longnameStr := unicode16FromString(longname)
   831  	ret1 := syscall6(pathYetAnotherMakeUniqueName, 4,
   832  		uintptr(unsafe.Pointer(buffer)),
   833  		uintptr(unsafe.Pointer(&pathStr[0])),
   834  		uintptr(unsafe.Pointer(&shortnameStr[0])),
   835  		uintptr(unsafe.Pointer(&longnameStr[0])),
   836  		0,
   837  		0)
   838  	return ret1 != 0
   839  }
   840  
   841  func PickIconDlg(hwndOwner HWND, lpstrFile LPSTR, nMaxFile DWORD, lpdwIconIndex *uint32) INT {
   842  	ret1 := syscall6(pickIconDlg, 4,
   843  		uintptr(hwndOwner),
   844  		uintptr(unsafe.Pointer(lpstrFile)),
   845  		uintptr(nMaxFile),
   846  		uintptr(unsafe.Pointer(lpdwIconIndex)),
   847  		0,
   848  		0)
   849  	return INT(ret1)
   850  }
   851  
   852  func ReadCabinetState(cs *CABINETSTATE, length int32) bool {
   853  	ret1 := syscall3(readCabinetState, 2,
   854  		uintptr(unsafe.Pointer(cs)),
   855  		uintptr(length),
   856  		0)
   857  	return ret1 != 0
   858  }
   859  
   860  func RealDriveType(drive int32, bQueryNet bool) int32 {
   861  	ret1 := syscall3(realDriveType, 2,
   862  		uintptr(drive),
   863  		getUintptrFromBool(bQueryNet),
   864  		0)
   865  	return int32(ret1)
   866  }
   867  
   868  func RegenerateUserEnvironment(wunknown *WCHAR, bunknown bool) bool {
   869  	ret1 := syscall3(regenerateUserEnvironment, 2,
   870  		uintptr(unsafe.Pointer(wunknown)),
   871  		getUintptrFromBool(bunknown),
   872  		0)
   873  	return ret1 != 0
   874  }
   875  
   876  func RestartDialog(hWndOwner HWND, lpstrReason string, uFlags DWORD) int32 {
   877  	lpstrReasonStr := unicode16FromString(lpstrReason)
   878  	ret1 := syscall3(restartDialog, 3,
   879  		uintptr(hWndOwner),
   880  		uintptr(unsafe.Pointer(&lpstrReasonStr[0])),
   881  		uintptr(uFlags))
   882  	return int32(ret1)
   883  }
   884  
   885  func RestartDialogEx(hWndOwner HWND, lpwstrReason string, uFlags DWORD, uReason DWORD) int32 {
   886  	lpwstrReasonStr := unicode16FromString(lpwstrReason)
   887  	ret1 := syscall6(restartDialogEx, 4,
   888  		uintptr(hWndOwner),
   889  		uintptr(unsafe.Pointer(&lpwstrReasonStr[0])),
   890  		uintptr(uFlags),
   891  		uintptr(uReason),
   892  		0,
   893  		0)
   894  	return int32(ret1)
   895  }
   896  
   897  func SHAddToRecentDocs(uFlags UINT, pv /*const*/ uintptr) {
   898  	syscall3(sHAddToRecentDocs, 2,
   899  		uintptr(uFlags),
   900  		pv,
   901  		0)
   902  }
   903  
   904  func SHAlloc(aLen DWORD) LPVOID {
   905  	ret1 := syscall3(sHAlloc, 1,
   906  		uintptr(aLen),
   907  		0,
   908  		0)
   909  	return (LPVOID)(unsafe.Pointer(ret1))
   910  }
   911  
   912  func SHAppBarMessage(msg DWORD, data PAPPBARDATA) *uint32 {
   913  	ret1 := syscall3(sHAppBarMessage, 2,
   914  		uintptr(msg),
   915  		uintptr(unsafe.Pointer(data)),
   916  		0)
   917  	return (*uint32)(unsafe.Pointer(ret1))
   918  }
   919  
   920  func SHAssocEnumHandlers(extra /*const*/ *WCHAR, filter ASSOC_FILTER, enumhandlers **IEnumAssocHandlers) HRESULT {
   921  	ret1 := syscall3(sHAssocEnumHandlers, 3,
   922  		uintptr(unsafe.Pointer(extra)),
   923  		uintptr(filter),
   924  		uintptr(unsafe.Pointer(enumhandlers)))
   925  	return HRESULT(ret1)
   926  }
   927  
   928  func SHBindToParent(pidl /*const*/ LPCITEMIDLIST, riid REFIID, ppv *LPVOID, ppidlLast *LPCITEMIDLIST) HRESULT {
   929  	ret1 := syscall6(sHBindToParent, 4,
   930  		uintptr(unsafe.Pointer(pidl)),
   931  		uintptr(unsafe.Pointer(riid)),
   932  		uintptr(unsafe.Pointer(ppv)),
   933  		uintptr(unsafe.Pointer(ppidlLast)),
   934  		0,
   935  		0)
   936  	return HRESULT(ret1)
   937  }
   938  
   939  func SHBrowseForFolder(lpbi LPBROWSEINFO) LPITEMIDLIST {
   940  	ret1 := syscall3(sHBrowseForFolder, 1,
   941  		uintptr(unsafe.Pointer(lpbi)),
   942  		0,
   943  		0)
   944  	return (LPITEMIDLIST)(unsafe.Pointer(ret1))
   945  }
   946  
   947  func SHChangeNotification_Lock(hChange HANDLE, dwProcessId DWORD, lppidls **LPITEMIDLIST, lpwEventId *LONG) HANDLE {
   948  	ret1 := syscall6(sHChangeNotification_Lock, 4,
   949  		uintptr(hChange),
   950  		uintptr(dwProcessId),
   951  		uintptr(unsafe.Pointer(lppidls)),
   952  		uintptr(unsafe.Pointer(lpwEventId)),
   953  		0,
   954  		0)
   955  	return HANDLE(ret1)
   956  }
   957  
   958  func SHChangeNotification_Unlock(hLock HANDLE) bool {
   959  	ret1 := syscall3(sHChangeNotification_Unlock, 1,
   960  		uintptr(hLock),
   961  		0,
   962  		0)
   963  	return ret1 != 0
   964  }
   965  
   966  func SHChangeNotify(wEventId LONG, uFlags UINT, dwItem1 /*const*/ uintptr, dwItem2 /*const*/ uintptr) {
   967  	syscall6(sHChangeNotify, 4,
   968  		uintptr(wEventId),
   969  		uintptr(uFlags),
   970  		dwItem1,
   971  		dwItem2,
   972  		0,
   973  		0)
   974  }
   975  
   976  func SHChangeNotifyDeregister(hNotify ULONG) bool {
   977  	ret1 := syscall3(sHChangeNotifyDeregister, 1,
   978  		uintptr(hNotify),
   979  		0,
   980  		0)
   981  	return ret1 != 0
   982  }
   983  
   984  func SHChangeNotifyRegister(hwnd HWND, fSources int32, wEventMask LONG, uMsg UINT, cItems int32, lpItems *SHChangeNotifyEntry) ULONG {
   985  	ret1 := syscall6(sHChangeNotifyRegister, 6,
   986  		uintptr(hwnd),
   987  		uintptr(fSources),
   988  		uintptr(wEventMask),
   989  		uintptr(uMsg),
   990  		uintptr(cItems),
   991  		uintptr(unsafe.Pointer(lpItems)))
   992  	return ULONG(ret1)
   993  }
   994  
   995  func SHCloneSpecialIDList(hwndOwner HWND, nFolder DWORD, fCreate bool) LPITEMIDLIST {
   996  	ret1 := syscall3(sHCloneSpecialIDList, 3,
   997  		uintptr(hwndOwner),
   998  		uintptr(nFolder),
   999  		getUintptrFromBool(fCreate))
  1000  	return (LPITEMIDLIST)(unsafe.Pointer(ret1))
  1001  }
  1002  
  1003  func SHCoCreateInstance(aclsid string, clsid /*const*/ *CLSID, pUnkOuter LPUNKNOWN, refiid REFIID, ppv *LPVOID) HRESULT {
  1004  	aclsidStr := unicode16FromString(aclsid)
  1005  	ret1 := syscall6(sHCoCreateInstance, 5,
  1006  		uintptr(unsafe.Pointer(&aclsidStr[0])),
  1007  		uintptr(unsafe.Pointer(clsid)),
  1008  		uintptr(unsafe.Pointer(pUnkOuter)),
  1009  		uintptr(unsafe.Pointer(refiid)),
  1010  		uintptr(unsafe.Pointer(ppv)),
  1011  		0)
  1012  	return HRESULT(ret1)
  1013  }
  1014  
  1015  func SHCreateDefaultContextMenu(pdcm /*const*/ *DEFCONTEXTMENU, riid REFIID, ppv uintptr) HRESULT {
  1016  	ret1 := syscall3(sHCreateDefaultContextMenu, 3,
  1017  		uintptr(unsafe.Pointer(pdcm)),
  1018  		uintptr(unsafe.Pointer(riid)),
  1019  		ppv)
  1020  	return HRESULT(ret1)
  1021  }
  1022  
  1023  func SHCreateDirectory(hWnd HWND, path /*const*/ uintptr) DWORD {
  1024  	ret1 := syscall3(sHCreateDirectory, 2,
  1025  		uintptr(hWnd),
  1026  		path,
  1027  		0)
  1028  	return DWORD(ret1)
  1029  }
  1030  
  1031  func SHCreateDirectoryEx(hWnd HWND, path string, sec *SECURITY_ATTRIBUTES) int32 {
  1032  	pathStr := unicode16FromString(path)
  1033  	ret1 := syscall3(sHCreateDirectoryEx, 3,
  1034  		uintptr(hWnd),
  1035  		uintptr(unsafe.Pointer(&pathStr[0])),
  1036  		uintptr(unsafe.Pointer(sec)))
  1037  	return int32(ret1)
  1038  }
  1039  
  1040  func SHCreateFileExtractIconW(file string, attribs DWORD, riid REFIID, ppv uintptr) HRESULT {
  1041  	fileStr := unicode16FromString(file)
  1042  	ret1 := syscall6(sHCreateFileExtractIconW, 4,
  1043  		uintptr(unsafe.Pointer(&fileStr[0])),
  1044  		uintptr(attribs),
  1045  		uintptr(unsafe.Pointer(riid)),
  1046  		ppv,
  1047  		0,
  1048  		0)
  1049  	return HRESULT(ret1)
  1050  }
  1051  
  1052  func SHCreateItemFromIDList(pidl /*const*/ PCIDLIST_ABSOLUTE, riid REFIID, ppv uintptr) HRESULT {
  1053  	ret1 := syscall3(sHCreateItemFromIDList, 3,
  1054  		uintptr(unsafe.Pointer(pidl)),
  1055  		uintptr(unsafe.Pointer(riid)),
  1056  		ppv)
  1057  	return HRESULT(ret1)
  1058  }
  1059  
  1060  func SHCreateItemFromParsingName(pszPath string, pbc *IBindCtx, riid REFIID, ppv uintptr) HRESULT {
  1061  	pszPathStr := unicode16FromString(pszPath)
  1062  	ret1 := syscall6(sHCreateItemFromParsingName, 4,
  1063  		uintptr(unsafe.Pointer(&pszPathStr[0])),
  1064  		uintptr(unsafe.Pointer(pbc)),
  1065  		uintptr(unsafe.Pointer(riid)),
  1066  		ppv,
  1067  		0,
  1068  		0)
  1069  	return HRESULT(ret1)
  1070  }
  1071  
  1072  func SHCreateQueryCancelAutoPlayMoniker(moniker **IMoniker) HRESULT {
  1073  	ret1 := syscall3(sHCreateQueryCancelAutoPlayMoniker, 1,
  1074  		uintptr(unsafe.Pointer(moniker)),
  1075  		0,
  1076  		0)
  1077  	return HRESULT(ret1)
  1078  }
  1079  
  1080  func SHCreateShellFolderView(pcsfv /*const*/ *SFV_CREATE, ppsv **IShellView) HRESULT {
  1081  	ret1 := syscall3(sHCreateShellFolderView, 2,
  1082  		uintptr(unsafe.Pointer(pcsfv)),
  1083  		uintptr(unsafe.Pointer(ppsv)),
  1084  		0)
  1085  	return HRESULT(ret1)
  1086  }
  1087  
  1088  func SHCreateShellFolderViewEx(psvcbi LPCSFV, ppv **IShellView) HRESULT {
  1089  	ret1 := syscall3(sHCreateShellFolderViewEx, 2,
  1090  		uintptr(unsafe.Pointer(psvcbi)),
  1091  		uintptr(unsafe.Pointer(ppv)),
  1092  		0)
  1093  	return HRESULT(ret1)
  1094  }
  1095  
  1096  func SHCreateShellItem(pidlParent /*const*/ LPCITEMIDLIST, psfParent *IShellFolder, pidl /*const*/ LPCITEMIDLIST, ppsi **IShellItem) HRESULT {
  1097  	ret1 := syscall6(sHCreateShellItem, 4,
  1098  		uintptr(unsafe.Pointer(pidlParent)),
  1099  		uintptr(unsafe.Pointer(psfParent)),
  1100  		uintptr(unsafe.Pointer(pidl)),
  1101  		uintptr(unsafe.Pointer(ppsi)),
  1102  		0,
  1103  		0)
  1104  	return HRESULT(ret1)
  1105  }
  1106  
  1107  func SHCreateShellItemArray(pidlParent /*const*/ PCIDLIST_ABSOLUTE, psf *IShellFolder, cidl UINT, ppidl PCUITEMID_CHILD_ARRAY, ppsiItemArray **IShellItemArray) HRESULT {
  1108  	ret1 := syscall6(sHCreateShellItemArray, 5,
  1109  		uintptr(unsafe.Pointer(pidlParent)),
  1110  		uintptr(unsafe.Pointer(psf)),
  1111  		uintptr(cidl),
  1112  		uintptr(unsafe.Pointer(ppidl)),
  1113  		uintptr(unsafe.Pointer(ppsiItemArray)),
  1114  		0)
  1115  	return HRESULT(ret1)
  1116  }
  1117  
  1118  func SHCreateShellItemArrayFromDataObject(pdo *IDataObject, riid REFIID, ppv uintptr) HRESULT {
  1119  	ret1 := syscall3(sHCreateShellItemArrayFromDataObject, 3,
  1120  		uintptr(unsafe.Pointer(pdo)),
  1121  		uintptr(unsafe.Pointer(riid)),
  1122  		ppv)
  1123  	return HRESULT(ret1)
  1124  }
  1125  
  1126  func SHCreateShellItemArrayFromIDLists(cidl UINT, pidl_array PCIDLIST_ABSOLUTE_ARRAY, psia **IShellItemArray) HRESULT {
  1127  	ret1 := syscall3(sHCreateShellItemArrayFromIDLists, 3,
  1128  		uintptr(cidl),
  1129  		uintptr(unsafe.Pointer(pidl_array)),
  1130  		uintptr(unsafe.Pointer(psia)))
  1131  	return HRESULT(ret1)
  1132  }
  1133  
  1134  func SHCreateShellItemArrayFromShellItem(item *IShellItem, riid REFIID, ppv uintptr) HRESULT {
  1135  	ret1 := syscall3(sHCreateShellItemArrayFromShellItem, 3,
  1136  		uintptr(unsafe.Pointer(item)),
  1137  		uintptr(unsafe.Pointer(riid)),
  1138  		ppv)
  1139  	return HRESULT(ret1)
  1140  }
  1141  
  1142  func SHCreateStdEnumFmtEtc(cFormats DWORD, lpFormats /*const*/ *FORMATETC, ppenumFormatetc *LPENUMFORMATETC) HRESULT {
  1143  	ret1 := syscall3(sHCreateStdEnumFmtEtc, 3,
  1144  		uintptr(cFormats),
  1145  		uintptr(unsafe.Pointer(lpFormats)),
  1146  		uintptr(unsafe.Pointer(ppenumFormatetc)))
  1147  	return HRESULT(ret1)
  1148  }
  1149  
  1150  func SHDefExtractIcon(pszIconFile string, iIndex int32, uFlags UINT, phiconLarge *HICON, phiconSmall *HICON, nIconSize UINT) HRESULT {
  1151  	pszIconFileStr := unicode16FromString(pszIconFile)
  1152  	ret1 := syscall6(sHDefExtractIcon, 6,
  1153  		uintptr(unsafe.Pointer(&pszIconFileStr[0])),
  1154  		uintptr(iIndex),
  1155  		uintptr(uFlags),
  1156  		uintptr(unsafe.Pointer(phiconLarge)),
  1157  		uintptr(unsafe.Pointer(phiconSmall)),
  1158  		uintptr(nIconSize))
  1159  	return HRESULT(ret1)
  1160  }
  1161  
  1162  func SHDoDragDrop(hWnd HWND, lpDataObject LPDATAOBJECT, lpDropSource LPDROPSOURCE, dwOKEffect DWORD, pdwEffect *uint32) HRESULT {
  1163  	ret1 := syscall6(sHDoDragDrop, 5,
  1164  		uintptr(hWnd),
  1165  		uintptr(unsafe.Pointer(lpDataObject)),
  1166  		uintptr(unsafe.Pointer(lpDropSource)),
  1167  		uintptr(dwOKEffect),
  1168  		uintptr(unsafe.Pointer(pdwEffect)),
  1169  		0)
  1170  	return HRESULT(ret1)
  1171  }
  1172  
  1173  func SHEmptyRecycleBin(hwnd HWND, pszRootPath string, dwFlags DWORD) HRESULT {
  1174  	pszRootPathStr := unicode16FromString(pszRootPath)
  1175  	ret1 := syscall3(sHEmptyRecycleBin, 3,
  1176  		uintptr(hwnd),
  1177  		uintptr(unsafe.Pointer(&pszRootPathStr[0])),
  1178  		uintptr(dwFlags))
  1179  	return HRESULT(ret1)
  1180  }
  1181  
  1182  func SHEnumerateUnreadMailAccountsW(user HKEY, idx DWORD, mailaddress LPWSTR, mailaddresslen INT) HRESULT {
  1183  	ret1 := syscall6(sHEnumerateUnreadMailAccountsW, 4,
  1184  		uintptr(user),
  1185  		uintptr(idx),
  1186  		uintptr(unsafe.Pointer(mailaddress)),
  1187  		uintptr(mailaddresslen),
  1188  		0,
  1189  		0)
  1190  	return HRESULT(ret1)
  1191  }
  1192  
  1193  func SHFileOperation(lpFileOp LPSHFILEOPSTRUCT) int32 {
  1194  	ret1 := syscall3(sHFileOperation, 1,
  1195  		uintptr(unsafe.Pointer(lpFileOp)),
  1196  		0,
  1197  		0)
  1198  	return int32(ret1)
  1199  }
  1200  
  1201  func SHFindFiles(pidlFolder /*const*/ LPCITEMIDLIST, pidlSaveFile /*const*/ LPCITEMIDLIST) bool {
  1202  	ret1 := syscall3(sHFindFiles, 2,
  1203  		uintptr(unsafe.Pointer(pidlFolder)),
  1204  		uintptr(unsafe.Pointer(pidlSaveFile)),
  1205  		0)
  1206  	return ret1 != 0
  1207  }
  1208  
  1209  func SHFind_InitMenuPopup(hMenu HMENU, hWndParent HWND, w DWORD, x DWORD) LPVOID {
  1210  	ret1 := syscall6(sHFind_InitMenuPopup, 4,
  1211  		uintptr(hMenu),
  1212  		uintptr(hWndParent),
  1213  		uintptr(w),
  1214  		uintptr(x),
  1215  		0,
  1216  		0)
  1217  	return (LPVOID)(unsafe.Pointer(ret1))
  1218  }
  1219  
  1220  func SHFlushClipboard() HRESULT {
  1221  	ret1 := syscall3(sHFlushClipboard, 0,
  1222  		0,
  1223  		0,
  1224  		0)
  1225  	return HRESULT(ret1)
  1226  }
  1227  
  1228  func SHFlushSFCache() {
  1229  	syscall3(sHFlushSFCache, 0,
  1230  		0,
  1231  		0,
  1232  		0)
  1233  }
  1234  
  1235  func SHFormatDrive(hwnd HWND, drive UINT, fmtID UINT, options UINT) DWORD {
  1236  	ret1 := syscall6(sHFormatDrive, 4,
  1237  		uintptr(hwnd),
  1238  		uintptr(drive),
  1239  		uintptr(fmtID),
  1240  		uintptr(options),
  1241  		0,
  1242  		0)
  1243  	return DWORD(ret1)
  1244  }
  1245  
  1246  func SHFree(pv LPVOID) {
  1247  	syscall3(sHFree, 1,
  1248  		uintptr(unsafe.Pointer(pv)),
  1249  		0,
  1250  		0)
  1251  }
  1252  
  1253  func SHFreeNameMappings(hNameMapping HANDLE) {
  1254  	syscall3(sHFreeNameMappings, 1,
  1255  		uintptr(hNameMapping),
  1256  		0,
  1257  		0)
  1258  }
  1259  
  1260  func SHGetDataFromIDList(psf LPSHELLFOLDER, pidl /*const*/ LPCITEMIDLIST, nFormat int32, dest LPVOID, aLen int32) HRESULT {
  1261  	ret1 := syscall6(sHGetDataFromIDList, 5,
  1262  		uintptr(unsafe.Pointer(psf)),
  1263  		uintptr(unsafe.Pointer(pidl)),
  1264  		uintptr(nFormat),
  1265  		uintptr(unsafe.Pointer(dest)),
  1266  		uintptr(aLen),
  1267  		0)
  1268  	return HRESULT(ret1)
  1269  }
  1270  
  1271  func SHGetDesktopFolder(psf **IShellFolder) HRESULT {
  1272  	ret1 := syscall3(sHGetDesktopFolder, 1,
  1273  		uintptr(unsafe.Pointer(psf)),
  1274  		0,
  1275  		0)
  1276  	return HRESULT(ret1)
  1277  }
  1278  
  1279  func SHGetFileInfo(path string, dwFileAttributes DWORD, psfi *SHFILEINFO, sizeofpsfi UINT, flags UINT) *uint32 {
  1280  	pathStr := unicode16FromString(path)
  1281  	ret1 := syscall6(sHGetFileInfo, 5,
  1282  		uintptr(unsafe.Pointer(&pathStr[0])),
  1283  		uintptr(dwFileAttributes),
  1284  		uintptr(unsafe.Pointer(psfi)),
  1285  		uintptr(sizeofpsfi),
  1286  		uintptr(flags),
  1287  		0)
  1288  	return (*uint32)(unsafe.Pointer(ret1))
  1289  }
  1290  
  1291  func SHGetFolderLocation(hwndOwner HWND, nFolder int32, hToken HANDLE, dwReserved DWORD, ppidl *LPITEMIDLIST) HRESULT {
  1292  	ret1 := syscall6(sHGetFolderLocation, 5,
  1293  		uintptr(hwndOwner),
  1294  		uintptr(nFolder),
  1295  		uintptr(hToken),
  1296  		uintptr(dwReserved),
  1297  		uintptr(unsafe.Pointer(ppidl)),
  1298  		0)
  1299  	return HRESULT(ret1)
  1300  }
  1301  
  1302  func SHGetFolderPathAndSubDir(hwndOwner HWND, nFolder int32, hToken HANDLE, dwFlags DWORD, pszSubPath string, pszPath LPWSTR) HRESULT {
  1303  	pszSubPathStr := unicode16FromString(pszSubPath)
  1304  	ret1 := syscall6(sHGetFolderPathAndSubDir, 6,
  1305  		uintptr(hwndOwner),
  1306  		uintptr(nFolder),
  1307  		uintptr(hToken),
  1308  		uintptr(dwFlags),
  1309  		uintptr(unsafe.Pointer(&pszSubPathStr[0])),
  1310  		uintptr(unsafe.Pointer(pszPath)))
  1311  	return HRESULT(ret1)
  1312  }
  1313  
  1314  func SHGetFolderPathEx(rfid REFKNOWNFOLDERID, flags DWORD, token HANDLE, path LPWSTR, aLen DWORD) HRESULT {
  1315  	ret1 := syscall6(sHGetFolderPathEx, 5,
  1316  		uintptr(unsafe.Pointer(rfid)),
  1317  		uintptr(flags),
  1318  		uintptr(token),
  1319  		uintptr(unsafe.Pointer(path)),
  1320  		uintptr(aLen),
  1321  		0)
  1322  	return HRESULT(ret1)
  1323  }
  1324  
  1325  func SHGetFolderPath(hwndOwner HWND, nFolder int32, hToken HANDLE, dwFlags DWORD, pszPath LPWSTR) HRESULT {
  1326  	ret1 := syscall6(sHGetFolderPath, 5,
  1327  		uintptr(hwndOwner),
  1328  		uintptr(nFolder),
  1329  		uintptr(hToken),
  1330  		uintptr(dwFlags),
  1331  		uintptr(unsafe.Pointer(pszPath)),
  1332  		0)
  1333  	return HRESULT(ret1)
  1334  }
  1335  
  1336  func SHGetIDListFromObject(punk *IUnknown, ppidl *PIDLIST_ABSOLUTE) HRESULT {
  1337  	ret1 := syscall3(sHGetIDListFromObject, 2,
  1338  		uintptr(unsafe.Pointer(punk)),
  1339  		uintptr(unsafe.Pointer(ppidl)),
  1340  		0)
  1341  	return HRESULT(ret1)
  1342  }
  1343  
  1344  func SHGetIconOverlayIndex(pszIconPath string, iIconIndex INT) INT {
  1345  	pszIconPathStr := unicode16FromString(pszIconPath)
  1346  	ret1 := syscall3(sHGetIconOverlayIndex, 2,
  1347  		uintptr(unsafe.Pointer(&pszIconPathStr[0])),
  1348  		uintptr(iIconIndex),
  1349  		0)
  1350  	return INT(ret1)
  1351  }
  1352  
  1353  func SHGetImageList(iImageList int32, riid REFIID, ppv uintptr) HRESULT {
  1354  	ret1 := syscall3(sHGetImageList, 3,
  1355  		uintptr(iImageList),
  1356  		uintptr(unsafe.Pointer(riid)),
  1357  		ppv)
  1358  	return HRESULT(ret1)
  1359  }
  1360  
  1361  func SHGetInstanceExplorer(lpUnknown **IUnknown) HRESULT {
  1362  	ret1 := syscall3(sHGetInstanceExplorer, 1,
  1363  		uintptr(unsafe.Pointer(lpUnknown)),
  1364  		0,
  1365  		0)
  1366  	return HRESULT(ret1)
  1367  }
  1368  
  1369  func SHGetItemFromDataObject(pdtobj *IDataObject, dwFlags DATAOBJ_GET_ITEM_FLAGS, riid REFIID, ppv uintptr) HRESULT {
  1370  	ret1 := syscall6(sHGetItemFromDataObject, 4,
  1371  		uintptr(unsafe.Pointer(pdtobj)),
  1372  		uintptr(dwFlags),
  1373  		uintptr(unsafe.Pointer(riid)),
  1374  		ppv,
  1375  		0,
  1376  		0)
  1377  	return HRESULT(ret1)
  1378  }
  1379  
  1380  func SHGetItemFromObject(punk *IUnknown, riid REFIID, ppv uintptr) HRESULT {
  1381  	ret1 := syscall3(sHGetItemFromObject, 3,
  1382  		uintptr(unsafe.Pointer(punk)),
  1383  		uintptr(unsafe.Pointer(riid)),
  1384  		ppv)
  1385  	return HRESULT(ret1)
  1386  }
  1387  
  1388  func SHGetKnownFolderIDList(rfid REFKNOWNFOLDERID, flags DWORD, token HANDLE, pidl *PIDLIST_ABSOLUTE) HRESULT {
  1389  	ret1 := syscall6(sHGetKnownFolderIDList, 4,
  1390  		uintptr(unsafe.Pointer(rfid)),
  1391  		uintptr(flags),
  1392  		uintptr(token),
  1393  		uintptr(unsafe.Pointer(pidl)),
  1394  		0,
  1395  		0)
  1396  	return HRESULT(ret1)
  1397  }
  1398  
  1399  func SHGetKnownFolderItem(rfid REFKNOWNFOLDERID, flags KNOWN_FOLDER_FLAG, hToken HANDLE, riid REFIID, ppv uintptr) HRESULT {
  1400  	ret1 := syscall6(sHGetKnownFolderItem, 5,
  1401  		uintptr(unsafe.Pointer(rfid)),
  1402  		uintptr(flags),
  1403  		uintptr(hToken),
  1404  		uintptr(unsafe.Pointer(riid)),
  1405  		ppv,
  1406  		0)
  1407  	return HRESULT(ret1)
  1408  }
  1409  
  1410  func SHGetKnownFolderPath(rfid REFKNOWNFOLDERID, flags DWORD, token HANDLE, path *PWSTR) HRESULT {
  1411  	ret1 := syscall6(sHGetKnownFolderPath, 4,
  1412  		uintptr(unsafe.Pointer(rfid)),
  1413  		uintptr(flags),
  1414  		uintptr(token),
  1415  		uintptr(unsafe.Pointer(path)),
  1416  		0,
  1417  		0)
  1418  	return HRESULT(ret1)
  1419  }
  1420  
  1421  func SHGetLocalizedName(path string, module LPWSTR, size UINT, res *int32) HRESULT {
  1422  	pathStr := unicode16FromString(path)
  1423  	ret1 := syscall6(sHGetLocalizedName, 4,
  1424  		uintptr(unsafe.Pointer(&pathStr[0])),
  1425  		uintptr(unsafe.Pointer(module)),
  1426  		uintptr(size),
  1427  		uintptr(unsafe.Pointer(res)),
  1428  		0,
  1429  		0)
  1430  	return HRESULT(ret1)
  1431  }
  1432  
  1433  func SHGetMalloc(lpmal *LPMALLOC) HRESULT {
  1434  	ret1 := syscall3(sHGetMalloc, 1,
  1435  		uintptr(unsafe.Pointer(lpmal)),
  1436  		0,
  1437  		0)
  1438  	return HRESULT(ret1)
  1439  }
  1440  
  1441  func SHGetNameFromIDList(pidl /*const*/ PCIDLIST_ABSOLUTE, sigdnName SIGDN, ppszName *PWSTR) HRESULT {
  1442  	ret1 := syscall3(sHGetNameFromIDList, 3,
  1443  		uintptr(unsafe.Pointer(pidl)),
  1444  		uintptr(sigdnName),
  1445  		uintptr(unsafe.Pointer(ppszName)))
  1446  	return HRESULT(ret1)
  1447  }
  1448  
  1449  func SHGetNewLinkInfo(pszLinkTo string, pszDir string, pszName LPWSTR, pfMustCopy *BOOL, uFlags UINT) bool {
  1450  	pszLinkToStr := unicode16FromString(pszLinkTo)
  1451  	pszDirStr := unicode16FromString(pszDir)
  1452  	ret1 := syscall6(sHGetNewLinkInfo, 5,
  1453  		uintptr(unsafe.Pointer(&pszLinkToStr[0])),
  1454  		uintptr(unsafe.Pointer(&pszDirStr[0])),
  1455  		uintptr(unsafe.Pointer(pszName)),
  1456  		uintptr(unsafe.Pointer(pfMustCopy)),
  1457  		uintptr(uFlags),
  1458  		0)
  1459  	return ret1 != 0
  1460  }
  1461  
  1462  func SHGetPathFromIDList(pidl /*const*/ LPCITEMIDLIST, pszPath LPWSTR) bool {
  1463  	ret1 := syscall3(sHGetPathFromIDList, 2,
  1464  		uintptr(unsafe.Pointer(pidl)),
  1465  		uintptr(unsafe.Pointer(pszPath)),
  1466  		0)
  1467  	return ret1 != 0
  1468  }
  1469  
  1470  func SHGetPropertyStoreForWindow(hwnd HWND, riid REFIID, ppv uintptr) HRESULT {
  1471  	ret1 := syscall3(sHGetPropertyStoreForWindow, 3,
  1472  		uintptr(hwnd),
  1473  		uintptr(unsafe.Pointer(riid)),
  1474  		ppv)
  1475  	return HRESULT(ret1)
  1476  }
  1477  
  1478  func SHGetPropertyStoreFromParsingName(pszPath string, pbc *IBindCtx, flags GETPROPERTYSTOREFLAGS, riid REFIID, ppv uintptr) HRESULT {
  1479  	pszPathStr := unicode16FromString(pszPath)
  1480  	ret1 := syscall6(sHGetPropertyStoreFromParsingName, 5,
  1481  		uintptr(unsafe.Pointer(&pszPathStr[0])),
  1482  		uintptr(unsafe.Pointer(pbc)),
  1483  		uintptr(flags),
  1484  		uintptr(unsafe.Pointer(riid)),
  1485  		ppv,
  1486  		0)
  1487  	return HRESULT(ret1)
  1488  }
  1489  
  1490  func SHGetRealIDL(lpsf LPSHELLFOLDER, pidlSimple /*const*/ LPCITEMIDLIST, pidlReal *LPITEMIDLIST) HRESULT {
  1491  	ret1 := syscall3(sHGetRealIDL, 3,
  1492  		uintptr(unsafe.Pointer(lpsf)),
  1493  		uintptr(unsafe.Pointer(pidlSimple)),
  1494  		uintptr(unsafe.Pointer(pidlReal)))
  1495  	return HRESULT(ret1)
  1496  }
  1497  
  1498  func SHGetSetSettings(lpss LPSHELLSTATE, dwMask DWORD, bSet bool) {
  1499  	syscall3(sHGetSetSettings, 3,
  1500  		uintptr(unsafe.Pointer(lpss)),
  1501  		uintptr(dwMask),
  1502  		getUintptrFromBool(bSet))
  1503  }
  1504  
  1505  func SHGetSettings(lpsfs LPSHELLFLAGSTATE, dwMask DWORD) {
  1506  	syscall3(sHGetSettings, 2,
  1507  		uintptr(unsafe.Pointer(lpsfs)),
  1508  		uintptr(dwMask),
  1509  		0)
  1510  }
  1511  
  1512  func SHGetSpecialFolderLocation(hwndOwner HWND, nFolder INT, ppidl *LPITEMIDLIST) HRESULT {
  1513  	ret1 := syscall3(sHGetSpecialFolderLocation, 3,
  1514  		uintptr(hwndOwner),
  1515  		uintptr(nFolder),
  1516  		uintptr(unsafe.Pointer(ppidl)))
  1517  	return HRESULT(ret1)
  1518  }
  1519  
  1520  func SHGetSpecialFolderPath(hwndOwner HWND, szPath LPWSTR, nFolder int32, bCreate bool) bool {
  1521  	ret1 := syscall6(sHGetSpecialFolderPath, 4,
  1522  		uintptr(hwndOwner),
  1523  		uintptr(unsafe.Pointer(szPath)),
  1524  		uintptr(nFolder),
  1525  		getUintptrFromBool(bCreate),
  1526  		0,
  1527  		0)
  1528  	return ret1 != 0
  1529  }
  1530  
  1531  func SHGetStockIconInfo(id SHSTOCKICONID, flags UINT, sii *SHSTOCKICONINFO) HRESULT {
  1532  	ret1 := syscall3(sHGetStockIconInfo, 3,
  1533  		uintptr(id),
  1534  		uintptr(flags),
  1535  		uintptr(unsafe.Pointer(sii)))
  1536  	return HRESULT(ret1)
  1537  }
  1538  
  1539  func SHHandleUpdateImage(pidlExtra /*const*/ LPCITEMIDLIST) INT {
  1540  	ret1 := syscall3(sHHandleUpdateImage, 1,
  1541  		uintptr(unsafe.Pointer(pidlExtra)),
  1542  		0,
  1543  		0)
  1544  	return INT(ret1)
  1545  }
  1546  
  1547  func SHHelpShortcuts_RunDLL(dwArg1 DWORD, dwArg2 DWORD, dwArg3 DWORD, dwArg4 DWORD) DWORD {
  1548  	ret1 := syscall6(sHHelpShortcuts_RunDLL, 4,
  1549  		uintptr(dwArg1),
  1550  		uintptr(dwArg2),
  1551  		uintptr(dwArg3),
  1552  		uintptr(dwArg4),
  1553  		0,
  1554  		0)
  1555  	return DWORD(ret1)
  1556  }
  1557  
  1558  func SHIsFileAvailableOffline(path string, status *uint32) HRESULT {
  1559  	pathStr := unicode16FromString(path)
  1560  	ret1 := syscall3(sHIsFileAvailableOffline, 2,
  1561  		uintptr(unsafe.Pointer(&pathStr[0])),
  1562  		uintptr(unsafe.Pointer(status)),
  1563  		0)
  1564  	return HRESULT(ret1)
  1565  }
  1566  
  1567  func SHLimitInputEdit(textbox HWND, folder *IShellFolder) HRESULT {
  1568  	ret1 := syscall3(sHLimitInputEdit, 2,
  1569  		uintptr(textbox),
  1570  		uintptr(unsafe.Pointer(folder)),
  1571  		0)
  1572  	return HRESULT(ret1)
  1573  }
  1574  
  1575  func SHLoadInProc(rclsid /*const*/ REFCLSID) HRESULT {
  1576  	ret1 := syscall3(sHLoadInProc, 1,
  1577  		uintptr(unsafe.Pointer(rclsid)),
  1578  		0,
  1579  		0)
  1580  	return HRESULT(ret1)
  1581  }
  1582  
  1583  func SHLoadNonloadedIconOverlayIdentifiers() HRESULT {
  1584  	ret1 := syscall3(sHLoadNonloadedIconOverlayIdentifiers, 0,
  1585  		0,
  1586  		0,
  1587  		0)
  1588  	return HRESULT(ret1)
  1589  }
  1590  
  1591  func SHMapIDListToImageListIndexAsync(pts *IUnknown, psf *IShellFolder, pidl /*const*/ LPCITEMIDLIST, flags UINT, pfn uintptr, pvData uintptr, pvHint uintptr, piIndex *int, piIndexSel *int) HRESULT {
  1592  	ret1 := syscall9(sHMapIDListToImageListIndexAsync, 9,
  1593  		uintptr(unsafe.Pointer(pts)),
  1594  		uintptr(unsafe.Pointer(psf)),
  1595  		uintptr(unsafe.Pointer(pidl)),
  1596  		uintptr(flags),
  1597  		pfn,
  1598  		pvData,
  1599  		pvHint,
  1600  		uintptr(unsafe.Pointer(piIndex)),
  1601  		uintptr(unsafe.Pointer(piIndexSel)))
  1602  	return HRESULT(ret1)
  1603  }
  1604  
  1605  func SHMapPIDLToSystemImageListIndex(sh *IShellFolder, pidl /*const*/ LPCITEMIDLIST, pIndex *int) int32 {
  1606  	ret1 := syscall3(sHMapPIDLToSystemImageListIndex, 3,
  1607  		uintptr(unsafe.Pointer(sh)),
  1608  		uintptr(unsafe.Pointer(pidl)),
  1609  		uintptr(unsafe.Pointer(pIndex)))
  1610  	return int32(ret1)
  1611  }
  1612  
  1613  func SHObjectProperties(hwnd HWND, dwType DWORD, szObject string, szPage string) bool {
  1614  	szObjectStr := unicode16FromString(szObject)
  1615  	szPageStr := unicode16FromString(szPage)
  1616  	ret1 := syscall6(sHObjectProperties, 4,
  1617  		uintptr(hwnd),
  1618  		uintptr(dwType),
  1619  		uintptr(unsafe.Pointer(&szObjectStr[0])),
  1620  		uintptr(unsafe.Pointer(&szPageStr[0])),
  1621  		0,
  1622  		0)
  1623  	return ret1 != 0
  1624  }
  1625  
  1626  func SHOpenFolderAndSelectItems(pidlFolder /*const*/ PCIDLIST_ABSOLUTE, cidl UINT, apidl *PCUITEMID_CHILD_ARRAY, flags DWORD) HRESULT {
  1627  	ret1 := syscall6(sHOpenFolderAndSelectItems, 4,
  1628  		uintptr(unsafe.Pointer(pidlFolder)),
  1629  		uintptr(cidl),
  1630  		uintptr(unsafe.Pointer(apidl)),
  1631  		uintptr(flags),
  1632  		0,
  1633  		0)
  1634  	return HRESULT(ret1)
  1635  }
  1636  
  1637  func SHParseDisplayName(name string, bindctx *IBindCtx, pidlist *LPITEMIDLIST, attr_in SFGAOF, attr_out *SFGAOF) HRESULT {
  1638  	nameStr := unicode16FromString(name)
  1639  	ret1 := syscall6(sHParseDisplayName, 5,
  1640  		uintptr(unsafe.Pointer(&nameStr[0])),
  1641  		uintptr(unsafe.Pointer(bindctx)),
  1642  		uintptr(unsafe.Pointer(pidlist)),
  1643  		uintptr(attr_in),
  1644  		uintptr(unsafe.Pointer(attr_out)),
  1645  		0)
  1646  	return HRESULT(ret1)
  1647  }
  1648  
  1649  func SHPathPrepareForWrite(hwnd HWND, modless *IUnknown, path string, flags DWORD) HRESULT {
  1650  	pathStr := unicode16FromString(path)
  1651  	ret1 := syscall6(sHPathPrepareForWrite, 4,
  1652  		uintptr(hwnd),
  1653  		uintptr(unsafe.Pointer(modless)),
  1654  		uintptr(unsafe.Pointer(&pathStr[0])),
  1655  		uintptr(flags),
  1656  		0,
  1657  		0)
  1658  	return HRESULT(ret1)
  1659  }
  1660  
  1661  func SHPropStgCreate(psstg *IPropertySetStorage, fmtid REFFMTID, pclsid /*const*/ *CLSID, grfFlags DWORD, grfMode DWORD, dwDisposition DWORD, ppstg **IPropertyStorage, puCodePage *UINT) HRESULT {
  1662  	ret1 := syscall9(sHPropStgCreate, 8,
  1663  		uintptr(unsafe.Pointer(psstg)),
  1664  		uintptr(unsafe.Pointer(fmtid)),
  1665  		uintptr(unsafe.Pointer(pclsid)),
  1666  		uintptr(grfFlags),
  1667  		uintptr(grfMode),
  1668  		uintptr(dwDisposition),
  1669  		uintptr(unsafe.Pointer(ppstg)),
  1670  		uintptr(unsafe.Pointer(puCodePage)),
  1671  		0)
  1672  	return HRESULT(ret1)
  1673  }
  1674  
  1675  func SHPropStgReadMultiple(pps *IPropertyStorage, uCodePage UINT, cpspec ULONG, rgpspec /*const*/ *PROPSPEC, rgvar *PROPVARIANT) HRESULT {
  1676  	ret1 := syscall6(sHPropStgReadMultiple, 5,
  1677  		uintptr(unsafe.Pointer(pps)),
  1678  		uintptr(uCodePage),
  1679  		uintptr(cpspec),
  1680  		uintptr(unsafe.Pointer(rgpspec)),
  1681  		uintptr(unsafe.Pointer(rgvar)),
  1682  		0)
  1683  	return HRESULT(ret1)
  1684  }
  1685  
  1686  func SHPropStgWriteMultiple(pps *IPropertyStorage, uCodePage *UINT, cpspec ULONG, rgpspec /*const*/ *PROPSPEC, rgvar *PROPVARIANT, propidNameFirst PROPID) HRESULT {
  1687  	ret1 := syscall6(sHPropStgWriteMultiple, 6,
  1688  		uintptr(unsafe.Pointer(pps)),
  1689  		uintptr(unsafe.Pointer(uCodePage)),
  1690  		uintptr(cpspec),
  1691  		uintptr(unsafe.Pointer(rgpspec)),
  1692  		uintptr(unsafe.Pointer(rgvar)),
  1693  		uintptr(propidNameFirst))
  1694  	return HRESULT(ret1)
  1695  }
  1696  
  1697  func SHQueryRecycleBin(pszRootPath string, pSHQueryRBInfo LPSHQUERYRBINFO) HRESULT {
  1698  	pszRootPathStr := unicode16FromString(pszRootPath)
  1699  	ret1 := syscall3(sHQueryRecycleBin, 2,
  1700  		uintptr(unsafe.Pointer(&pszRootPathStr[0])),
  1701  		uintptr(unsafe.Pointer(pSHQueryRBInfo)),
  1702  		0)
  1703  	return HRESULT(ret1)
  1704  }
  1705  
  1706  func SHQueryUserNotificationState(state *QUERY_USER_NOTIFICATION_STATE) HRESULT {
  1707  	ret1 := syscall3(sHQueryUserNotificationState, 1,
  1708  		uintptr(unsafe.Pointer(state)),
  1709  		0,
  1710  		0)
  1711  	return HRESULT(ret1)
  1712  }
  1713  
  1714  func SHRemoveLocalizedName(path /*const*/ *WCHAR) HRESULT {
  1715  	ret1 := syscall3(sHRemoveLocalizedName, 1,
  1716  		uintptr(unsafe.Pointer(path)),
  1717  		0,
  1718  		0)
  1719  	return HRESULT(ret1)
  1720  }
  1721  
  1722  func SHRestricted(policy RESTRICTIONS) DWORD {
  1723  	ret1 := syscall3(sHRestricted, 1,
  1724  		uintptr(policy),
  1725  		0,
  1726  		0)
  1727  	return DWORD(ret1)
  1728  }
  1729  
  1730  func SHRunControlPanel(commandLine string, parent HWND) bool {
  1731  	commandLineStr := unicode16FromString(commandLine)
  1732  	ret1 := syscall3(sHRunControlPanel, 2,
  1733  		uintptr(unsafe.Pointer(&commandLineStr[0])),
  1734  		uintptr(parent),
  1735  		0)
  1736  	return ret1 != 0
  1737  }
  1738  
  1739  func SHSetInstanceExplorer(lpUnknown LPUNKNOWN) {
  1740  	syscall3(sHSetInstanceExplorer, 1,
  1741  		uintptr(unsafe.Pointer(lpUnknown)),
  1742  		0,
  1743  		0)
  1744  }
  1745  
  1746  func SHSetLocalizedName(pszPath LPWSTR, pszResModule string, idsRes int32) HRESULT {
  1747  	pszResModuleStr := unicode16FromString(pszResModule)
  1748  	ret1 := syscall3(sHSetLocalizedName, 3,
  1749  		uintptr(unsafe.Pointer(pszPath)),
  1750  		uintptr(unsafe.Pointer(&pszResModuleStr[0])),
  1751  		uintptr(idsRes))
  1752  	return HRESULT(ret1)
  1753  }
  1754  
  1755  func SHSetUnreadMailCountW(mailaddress string, count DWORD, executecommand string) HRESULT {
  1756  	mailaddressStr := unicode16FromString(mailaddress)
  1757  	executecommandStr := unicode16FromString(executecommand)
  1758  	ret1 := syscall3(sHSetUnreadMailCountW, 3,
  1759  		uintptr(unsafe.Pointer(&mailaddressStr[0])),
  1760  		uintptr(count),
  1761  		uintptr(unsafe.Pointer(&executecommandStr[0])))
  1762  	return HRESULT(ret1)
  1763  }
  1764  
  1765  func SHShellFolderView_Message(hwndCabinet HWND, uMessage UINT, lParam LPARAM) LRESULT {
  1766  	ret1 := syscall3(sHShellFolderView_Message, 3,
  1767  		uintptr(hwndCabinet),
  1768  		uintptr(uMessage),
  1769  		uintptr(lParam))
  1770  	return LRESULT(ret1)
  1771  }
  1772  
  1773  func SHUpdateImage(pszHashItem string, iIndex int32, uFlags UINT, iImageIndex int32) {
  1774  	pszHashItemStr := unicode16FromString(pszHashItem)
  1775  	syscall6(sHUpdateImage, 4,
  1776  		uintptr(unsafe.Pointer(&pszHashItemStr[0])),
  1777  		uintptr(iIndex),
  1778  		uintptr(uFlags),
  1779  		uintptr(iImageIndex),
  1780  		0,
  1781  		0)
  1782  }
  1783  
  1784  func SHUpdateRecycleBinIcon() HRESULT {
  1785  	ret1 := syscall3(sHUpdateRecycleBinIcon, 0,
  1786  		0,
  1787  		0,
  1788  		0)
  1789  	return HRESULT(ret1)
  1790  }
  1791  
  1792  func SHValidateUNC(hwndOwner HWND, pszFile PWSTR, fConnect UINT) bool {
  1793  	ret1 := syscall3(sHValidateUNC, 3,
  1794  		uintptr(hwndOwner),
  1795  		uintptr(unsafe.Pointer(pszFile)),
  1796  		uintptr(fConnect))
  1797  	return ret1 != 0
  1798  }
  1799  
  1800  func SetCurrentProcessExplicitAppUserModelID(appid string) HRESULT {
  1801  	appidStr := unicode16FromString(appid)
  1802  	ret1 := syscall3(setCurrentProcessExplicitAppUserModelID, 1,
  1803  		uintptr(unsafe.Pointer(&appidStr[0])),
  1804  		0,
  1805  		0)
  1806  	return HRESULT(ret1)
  1807  }
  1808  
  1809  func SheChangeDir(path LPWSTR) DWORD {
  1810  	ret1 := syscall3(sheChangeDir, 1,
  1811  		uintptr(unsafe.Pointer(path)),
  1812  		0,
  1813  		0)
  1814  	return DWORD(ret1)
  1815  }
  1816  
  1817  func SheGetDir(drive DWORD, buffer LPWSTR) DWORD {
  1818  	ret1 := syscall3(sheGetDir, 2,
  1819  		uintptr(drive),
  1820  		uintptr(unsafe.Pointer(buffer)),
  1821  		0)
  1822  	return DWORD(ret1)
  1823  }
  1824  
  1825  func ShellAbout(hWnd HWND, szApp string, szOtherStuff string, hIcon HICON) bool {
  1826  	szAppStr := unicode16FromString(szApp)
  1827  	szOtherStuffStr := unicode16FromString(szOtherStuff)
  1828  	ret1 := syscall6(shellAbout, 4,
  1829  		uintptr(hWnd),
  1830  		uintptr(unsafe.Pointer(&szAppStr[0])),
  1831  		uintptr(unsafe.Pointer(&szOtherStuffStr[0])),
  1832  		uintptr(hIcon),
  1833  		0,
  1834  		0)
  1835  	return ret1 != 0
  1836  }
  1837  
  1838  func ShellExecute(hwnd HWND, lpVerb string, lpFile string, lpParameters string, lpDirectory string, nShowCmd INT) HINSTANCE {
  1839  	lpVerbStr := unicode16FromString(lpVerb)
  1840  	lpFileStr := unicode16FromString(lpFile)
  1841  	lpParametersStr := unicode16FromString(lpParameters)
  1842  	lpDirectoryStr := unicode16FromString(lpDirectory)
  1843  	ret1 := syscall6(shellExecute, 6,
  1844  		uintptr(hwnd),
  1845  		uintptr(unsafe.Pointer(&lpVerbStr[0])),
  1846  		uintptr(unsafe.Pointer(&lpFileStr[0])),
  1847  		uintptr(unsafe.Pointer(&lpParametersStr[0])),
  1848  		uintptr(unsafe.Pointer(&lpDirectoryStr[0])),
  1849  		uintptr(nShowCmd))
  1850  	return HINSTANCE(ret1)
  1851  }
  1852  
  1853  func Shell_GetImageLists(lpBigList *HIMAGELIST, lpSmallList *HIMAGELIST) bool {
  1854  	ret1 := syscall3(shell_GetImageLists, 2,
  1855  		uintptr(unsafe.Pointer(lpBigList)),
  1856  		uintptr(unsafe.Pointer(lpSmallList)),
  1857  		0)
  1858  	return ret1 != 0
  1859  }
  1860  
  1861  func Shell_MergeMenus(hmDst HMENU, hmSrc HMENU, uInsert UINT, uIDAdjust UINT, uIDAdjustMax UINT, uFlags ULONG) UINT {
  1862  	ret1 := syscall6(shell_MergeMenus, 6,
  1863  		uintptr(hmDst),
  1864  		uintptr(hmSrc),
  1865  		uintptr(uInsert),
  1866  		uintptr(uIDAdjust),
  1867  		uintptr(uIDAdjustMax),
  1868  		uintptr(uFlags))
  1869  	return UINT(ret1)
  1870  }
  1871  
  1872  func Shell_NotifyIcon(dwMessage DWORD, nid PNOTIFYICONDATA) bool {
  1873  	ret1 := syscall3(shell_NotifyIcon, 2,
  1874  		uintptr(dwMessage),
  1875  		uintptr(unsafe.Pointer(nid)),
  1876  		0)
  1877  	return ret1 != 0
  1878  }
  1879  
  1880  func SignalFileOpen(pidl /*const*/ PCIDLIST_ABSOLUTE) bool {
  1881  	ret1 := syscall3(signalFileOpen, 1,
  1882  		uintptr(unsafe.Pointer(pidl)),
  1883  		0,
  1884  		0)
  1885  	return ret1 != 0
  1886  }
  1887  
  1888  func WOWShellExecute(hWnd HWND, lpOperation /*const*/ LPCSTR, lpFile /*const*/ LPCSTR, lpParameters /*const*/ LPCSTR, lpDirectory /*const*/ LPCSTR, iShowCmd INT, callback uintptr) HINSTANCE {
  1889  	ret1 := syscall9(wOWShellExecute, 7,
  1890  		uintptr(hWnd),
  1891  		uintptr(unsafe.Pointer(lpOperation)),
  1892  		uintptr(unsafe.Pointer(lpFile)),
  1893  		uintptr(unsafe.Pointer(lpParameters)),
  1894  		uintptr(unsafe.Pointer(lpDirectory)),
  1895  		uintptr(iShowCmd),
  1896  		callback,
  1897  		0,
  1898  		0)
  1899  	return HINSTANCE(ret1)
  1900  }
  1901  
  1902  func WriteCabinetState(cs *CABINETSTATE) bool {
  1903  	ret1 := syscall3(writeCabinetState, 1,
  1904  		uintptr(unsafe.Pointer(cs)),
  1905  		0,
  1906  		0)
  1907  	return ret1 != 0
  1908  }