"Fossies" - the Fresh Open Source Software Archive

Member "FreeBASIC-1.09.0-win64/inc/win/shobjidl.bi" (1 Jan 2022, 875291 Bytes) of package /windows/misc/FreeBASIC-1.09.0-win64.zip:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Visual Basic source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

A hint: This file contains one or more very long lines, so maybe it is better readable using the pure text view mode that shows the contents as wrapped lines within the browser window.


    1 '' FreeBASIC binding for mingw-w64-v4.0.4
    2 ''
    3 '' based on the C header files:
    4 ''   This Software is provided under the Zope Public License (ZPL) Version 2.1.
    5 ''
    6 ''   Copyright (c) 2009, 2010 by the mingw-w64 project
    7 ''
    8 ''   See the AUTHORS file for the list of contributors to the mingw-w64 project.
    9 ''
   10 ''   This license has been certified as open source. It has also been designated
   11 ''   as GPL compatible by the Free Software Foundation (FSF).
   12 ''
   13 ''   Redistribution and use in source and binary forms, with or without
   14 ''   modification, are permitted provided that the following conditions are met:
   15 ''
   16 ''     1. Redistributions in source code must retain the accompanying copyright
   17 ''        notice, this list of conditions, and the following disclaimer.
   18 ''     2. Redistributions in binary form must reproduce the accompanying
   19 ''        copyright notice, this list of conditions, and the following disclaimer
   20 ''        in the documentation and/or other materials provided with the
   21 ''        distribution.
   22 ''     3. Names of the copyright holders must not be used to endorse or promote
   23 ''        products derived from this software without prior written permission
   24 ''        from the copyright holders.
   25 ''     4. The right to distribute this software or to use it for any purpose does
   26 ''        not give you the right to use Servicemarks (sm) or Trademarks (tm) of
   27 ''        the copyright holders.  Use of them is covered by separate agreement
   28 ''        with the copyright holders.
   29 ''     5. If any files are modified, you must cause the modified files to carry
   30 ''        prominent notices stating that you changed the files and the date of
   31 ''        any change.
   32 ''
   33 ''   Disclaimer
   34 ''
   35 ''   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED
   36 ''   OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   37 ''   OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
   38 ''   EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
   39 ''   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   40 ''   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 
   41 ''   OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   42 ''   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   43 ''   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
   44 ''   EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   45 ''
   46 '' translated to FreeBASIC by:
   47 ''   Copyright © 2015 FreeBASIC development team
   48 
   49 #pragma once
   50 
   51 #include once "rpc.bi"
   52 #include once "rpcndr.bi"
   53 #include once "windows.bi"
   54 #include once "ole2.bi"
   55 #include once "objidl.bi"
   56 #include once "oleidl.bi"
   57 #include once "oaidl.bi"
   58 #include once "docobj.bi"
   59 #include once "shtypes.bi"
   60 #include once "servprov.bi"
   61 #include once "comcat.bi"
   62 #include once "propidl.bi"
   63 #include once "prsht.bi"
   64 #include once "msxml.bi"
   65 #include once "wtypes.bi"
   66 #include once "propsys.bi"
   67 #include once "objectarray.bi"
   68 #include once "structuredquerycondition.bi"
   69 #include once "winapifamily.bi"
   70 #include once "_mingw_unicode.bi"
   71 #include once "sherrors.bi"
   72 #include once "commctrl.bi"
   73 #include once "shellapi.bi"
   74 
   75 extern "Windows"
   76 
   77 #define __shobjidl_h__
   78 #define __IContextMenu_FWD_DEFINED__
   79 #define __IContextMenu2_FWD_DEFINED__
   80 #define __IContextMenu3_FWD_DEFINED__
   81 #define __IExecuteCommand_FWD_DEFINED__
   82 #define __IPersistFolder_FWD_DEFINED__
   83 #define __IRunnableTask_FWD_DEFINED__
   84 #define __IShellTaskScheduler_FWD_DEFINED__
   85 #define __IQueryCodePage_FWD_DEFINED__
   86 #define __IPersistFolder2_FWD_DEFINED__
   87 #define __IPersistFolder3_FWD_DEFINED__
   88 #define __IPersistIDList_FWD_DEFINED__
   89 #define __IEnumIDList_FWD_DEFINED__
   90 #define __IEnumFullIDList_FWD_DEFINED__
   91 #define __IObjectWithFolderEnumMode_FWD_DEFINED__
   92 #define __IParseAndCreateItem_FWD_DEFINED__
   93 #define __IShellFolder_FWD_DEFINED__
   94 #define __IEnumExtraSearch_FWD_DEFINED__
   95 #define __IShellFolder2_FWD_DEFINED__
   96 #define __IFolderViewOptions_FWD_DEFINED__
   97 #define __IShellView_FWD_DEFINED__
   98 #define __IShellView2_FWD_DEFINED__
   99 #define __IShellView3_FWD_DEFINED__
  100 #define __IFolderView_FWD_DEFINED__
  101 #define __ISearchBoxInfo_FWD_DEFINED__
  102 #define __IFolderView2_FWD_DEFINED__
  103 #define __IFolderViewSettings_FWD_DEFINED__
  104 #define __IPreviewHandlerVisuals_FWD_DEFINED__
  105 #define __IVisualProperties_FWD_DEFINED__
  106 #define __ICommDlgBrowser_FWD_DEFINED__
  107 #define __ICommDlgBrowser2_FWD_DEFINED__
  108 #define __ICommDlgBrowser3_FWD_DEFINED__
  109 #define __IColumnManager_FWD_DEFINED__
  110 #define __IFolderFilterSite_FWD_DEFINED__
  111 #define __IFolderFilter_FWD_DEFINED__
  112 #define __IInputObjectSite_FWD_DEFINED__
  113 #define __IInputObject_FWD_DEFINED__
  114 #define __IInputObject2_FWD_DEFINED__
  115 #define __IShellIcon_FWD_DEFINED__
  116 #define __IShellBrowser_FWD_DEFINED__
  117 #define __IProfferService_FWD_DEFINED__
  118 #define __IShellItem_FWD_DEFINED__
  119 #define __IShellItem2_FWD_DEFINED__
  120 #define __IShellItemImageFactory_FWD_DEFINED__
  121 #define __IUserAccountChangeCallback_FWD_DEFINED__
  122 #define __IEnumShellItems_FWD_DEFINED__
  123 #define __ITransferAdviseSink_FWD_DEFINED__
  124 #define __ITransferSource_FWD_DEFINED__
  125 #define __IEnumResources_FWD_DEFINED__
  126 #define __IShellItemResources_FWD_DEFINED__
  127 #define __ITransferDestination_FWD_DEFINED__
  128 #define __IStreamAsync_FWD_DEFINED__
  129 #define __IStreamUnbufferedInfo_FWD_DEFINED__
  130 #define __IFileOperationProgressSink_FWD_DEFINED__
  131 #define __IShellItemArray_FWD_DEFINED__
  132 #define __IInitializeWithItem_FWD_DEFINED__
  133 #define __IObjectWithSelection_FWD_DEFINED__
  134 #define __IObjectWithBackReferences_FWD_DEFINED__
  135 #define __IPropertyUI_FWD_DEFINED__
  136 #define __ICategoryProvider_FWD_DEFINED__
  137 #define __ICategorizer_FWD_DEFINED__
  138 #define __IDropTargetHelper_FWD_DEFINED__
  139 #define __IDragSourceHelper_FWD_DEFINED__
  140 #define __IDragSourceHelper2_FWD_DEFINED__
  141 #define __IShellLinkA_FWD_DEFINED__
  142 #define __IShellLinkW_FWD_DEFINED__
  143 #define __IShellLinkDataList_FWD_DEFINED__
  144 #define __IResolveShellLink_FWD_DEFINED__
  145 #define __IActionProgressDialog_FWD_DEFINED__
  146 #define __IHWEventHandler_FWD_DEFINED__
  147 #define __IHWEventHandler2_FWD_DEFINED__
  148 #define __IQueryCancelAutoPlay_FWD_DEFINED__
  149 #define __IDynamicHWHandler_FWD_DEFINED__
  150 #define __IActionProgress_FWD_DEFINED__
  151 #define __IShellExtInit_FWD_DEFINED__
  152 #define __IShellPropSheetExt_FWD_DEFINED__
  153 #define __IRemoteComputer_FWD_DEFINED__
  154 #define __IQueryContinue_FWD_DEFINED__
  155 #define __IObjectWithCancelEvent_FWD_DEFINED__
  156 #define __IUserNotification_FWD_DEFINED__
  157 #define __IUserNotificationCallback_FWD_DEFINED__
  158 #define __IUserNotification2_FWD_DEFINED__
  159 #define __IItemNameLimits_FWD_DEFINED__
  160 #define __ISearchFolderItemFactory_FWD_DEFINED__
  161 #define __IExtractImage_FWD_DEFINED__
  162 #define __IExtractImage2_FWD_DEFINED__
  163 #define __IThumbnailHandlerFactory_FWD_DEFINED__
  164 #define __IParentAndItem_FWD_DEFINED__
  165 #define __IDockingWindow_FWD_DEFINED__
  166 #define __IDeskBand_FWD_DEFINED__
  167 #define __IDeskBandInfo_FWD_DEFINED__
  168 #define __IDeskBand2_FWD_DEFINED__
  169 #define __ITaskbarList_FWD_DEFINED__
  170 #define __ITaskbarList2_FWD_DEFINED__
  171 #define __ITaskbarList3_FWD_DEFINED__
  172 #define __ITaskbarList4_FWD_DEFINED__
  173 #define __IStartMenuPinnedList_FWD_DEFINED__
  174 #define __ICDBurn_FWD_DEFINED__
  175 #define __IWizardSite_FWD_DEFINED__
  176 #define __IWizardExtension_FWD_DEFINED__
  177 #define __IWebWizardExtension_FWD_DEFINED__
  178 #define __IPublishingWizard_FWD_DEFINED__
  179 #define __IFolderViewHost_FWD_DEFINED__
  180 #define __IExplorerBrowserEvents_FWD_DEFINED__
  181 #define __IExplorerBrowser_FWD_DEFINED__
  182 #define __IAccessibleObject_FWD_DEFINED__
  183 #define __IResultsFolder_FWD_DEFINED__
  184 #define __IEnumObjects_FWD_DEFINED__
  185 #define __IOperationsProgressDialog_FWD_DEFINED__
  186 #define __IIOCancelInformation_FWD_DEFINED__
  187 #define __IFileOperation_FWD_DEFINED__
  188 #define __IObjectProvider_FWD_DEFINED__
  189 #define __INamespaceWalkCB_FWD_DEFINED__
  190 #define __INamespaceWalkCB2_FWD_DEFINED__
  191 #define __INamespaceWalk_FWD_DEFINED__
  192 #define __IAutoCompleteDropDown_FWD_DEFINED__
  193 #define __IBandSite_FWD_DEFINED__
  194 #define __IModalWindow_FWD_DEFINED__
  195 #define __ICDBurnExt_FWD_DEFINED__
  196 #define __IContextMenuSite_FWD_DEFINED__
  197 #define __IEnumReadyCallback_FWD_DEFINED__
  198 #define __IEnumerableView_FWD_DEFINED__
  199 #define __IInsertItem_FWD_DEFINED__
  200 #define __IMenuBand_FWD_DEFINED__
  201 #define __IFolderBandPriv_FWD_DEFINED__
  202 #define __IRegTreeItem_FWD_DEFINED__
  203 #define __IImageRecompress_FWD_DEFINED__
  204 #define __IDeskBar_FWD_DEFINED__
  205 #define __IMenuPopup_FWD_DEFINED__
  206 #define __IFileIsInUse_FWD_DEFINED__
  207 #define __IFileDialogEvents_FWD_DEFINED__
  208 #define __IFileDialog_FWD_DEFINED__
  209 #define __IFileSaveDialog_FWD_DEFINED__
  210 #define __IFileOpenDialog_FWD_DEFINED__
  211 #define __IFileDialogCustomize_FWD_DEFINED__
  212 #define __IFileDialogControlEvents_FWD_DEFINED__
  213 #define __IFileDialog2_FWD_DEFINED__
  214 #define __IApplicationAssociationRegistration_FWD_DEFINED__
  215 #define __IApplicationAssociationRegistrationUI_FWD_DEFINED__
  216 #define __IDelegateFolder_FWD_DEFINED__
  217 #define __IBrowserFrameOptions_FWD_DEFINED__
  218 #define __INewWindowManager_FWD_DEFINED__
  219 #define __IAttachmentExecute_FWD_DEFINED__
  220 #define __IShellMenuCallback_FWD_DEFINED__
  221 #define __IShellMenu_FWD_DEFINED__
  222 #define __IShellRunDll_FWD_DEFINED__
  223 #define __IKnownFolder_FWD_DEFINED__
  224 #define __IKnownFolderManager_FWD_DEFINED__
  225 #define __ISharingConfigurationManager_FWD_DEFINED__
  226 #define __IPreviousVersionsInfo_FWD_DEFINED__
  227 #define __IRelatedItem_FWD_DEFINED__
  228 #define __IIdentityName_FWD_DEFINED__
  229 #define __IDelegateItem_FWD_DEFINED__
  230 #define __ICurrentItem_FWD_DEFINED__
  231 #define __ITransferMediumItem_FWD_DEFINED__
  232 #define __IUseToBrowseItem_FWD_DEFINED__
  233 #define __IDisplayItem_FWD_DEFINED__
  234 #define __IViewStateIdentityItem_FWD_DEFINED__
  235 #define __IPreviewItem_FWD_DEFINED__
  236 #define __IDestinationStreamFactory_FWD_DEFINED__
  237 #define __INewMenuClient_FWD_DEFINED__
  238 #define __IInitializeWithBindCtx_FWD_DEFINED__
  239 #define __IShellItemFilter_FWD_DEFINED__
  240 #define __INameSpaceTreeControl_FWD_DEFINED__
  241 #define __INameSpaceTreeControl2_FWD_DEFINED__
  242 #define __INameSpaceTreeControlEvents_FWD_DEFINED__
  243 #define __INameSpaceTreeControlDropHandler_FWD_DEFINED__
  244 #define __INameSpaceTreeAccessible_FWD_DEFINED__
  245 #define __INameSpaceTreeControlCustomDraw_FWD_DEFINED__
  246 #define __INameSpaceTreeControlFolderCapabilities_FWD_DEFINED__
  247 #define __IPreviewHandler_FWD_DEFINED__
  248 #define __IPreviewHandlerFrame_FWD_DEFINED__
  249 #define __ITrayDeskBand_FWD_DEFINED__
  250 #define __IBandHost_FWD_DEFINED__
  251 #define __IExplorerPaneVisibility_FWD_DEFINED__
  252 #define __IContextMenuCB_FWD_DEFINED__
  253 #define __IDefaultExtractIconInit_FWD_DEFINED__
  254 #define __IExplorerCommand_FWD_DEFINED__
  255 #define __IExplorerCommandState_FWD_DEFINED__
  256 #define __IInitializeCommand_FWD_DEFINED__
  257 #define __IEnumExplorerCommand_FWD_DEFINED__
  258 #define __IExplorerCommandProvider_FWD_DEFINED__
  259 #define __IInitializeNetworkFolder_FWD_DEFINED__
  260 #define __IOpenControlPanel_FWD_DEFINED__
  261 #define __IComputerInfoChangeNotify_FWD_DEFINED__
  262 #define __IFileSystemBindData_FWD_DEFINED__
  263 #define __IFileSystemBindData2_FWD_DEFINED__
  264 #define __ICustomDestinationList_FWD_DEFINED__
  265 #define __IApplicationDestinations_FWD_DEFINED__
  266 #define __IApplicationDocumentLists_FWD_DEFINED__
  267 #define __IObjectWithAppUserModelID_FWD_DEFINED__
  268 #define __IObjectWithProgID_FWD_DEFINED__
  269 #define __IUpdateIDList_FWD_DEFINED__
  270 #define __IDesktopGadget_FWD_DEFINED__
  271 #define __IDesktopWallpaper_FWD_DEFINED__
  272 #define __IHomeGroup_FWD_DEFINED__
  273 #define __IInitializeWithPropertyStore_FWD_DEFINED__
  274 #define __IOpenSearchSource_FWD_DEFINED__
  275 #define __IShellLibrary_FWD_DEFINED__
  276 #define __IPlaybackManagerEvents_FWD_DEFINED__
  277 #define __IPlaybackManager_FWD_DEFINED__
  278 #define __IDefaultFolderMenuInitialize_FWD_DEFINED__
  279 #define __IApplicationActivationManager_FWD_DEFINED__
  280 #define __DesktopWallpaper_FWD_DEFINED__
  281 #define __ShellDesktop_FWD_DEFINED__
  282 #define __ShellFSFolder_FWD_DEFINED__
  283 #define __NetworkPlaces_FWD_DEFINED__
  284 #define __ShellLink_FWD_DEFINED__
  285 #define __QueryCancelAutoPlay_FWD_DEFINED__
  286 #define __DriveSizeCategorizer_FWD_DEFINED__
  287 #define __DriveTypeCategorizer_FWD_DEFINED__
  288 #define __FreeSpaceCategorizer_FWD_DEFINED__
  289 #define __TimeCategorizer_FWD_DEFINED__
  290 #define __SizeCategorizer_FWD_DEFINED__
  291 #define __AlphabeticalCategorizer_FWD_DEFINED__
  292 #define __MergedCategorizer_FWD_DEFINED__
  293 #define __ImageProperties_FWD_DEFINED__
  294 #define __PropertiesUI_FWD_DEFINED__
  295 #define __UserNotification_FWD_DEFINED__
  296 #define __CDBurn_FWD_DEFINED__
  297 #define __TaskbarList_FWD_DEFINED__
  298 #define __StartMenuPin_FWD_DEFINED__
  299 #define __WebWizardHost_FWD_DEFINED__
  300 #define __PublishDropTarget_FWD_DEFINED__
  301 #define __PublishingWizard_FWD_DEFINED__
  302 #define __InternetPrintOrdering_FWD_DEFINED__
  303 #define __FolderViewHost_FWD_DEFINED__
  304 #define __ExplorerBrowser_FWD_DEFINED__
  305 #define __ImageRecompress_FWD_DEFINED__
  306 #define __TrayBandSiteService_FWD_DEFINED__
  307 #define __TrayDeskBand_FWD_DEFINED__
  308 #define __AttachmentServices_FWD_DEFINED__
  309 #define __DocPropShellExtension_FWD_DEFINED__
  310 #define __ShellItem_FWD_DEFINED__
  311 #define __NamespaceWalker_FWD_DEFINED__
  312 #define __FileOperation_FWD_DEFINED__
  313 #define __FileOpenDialog_FWD_DEFINED__
  314 #define __FileSaveDialog_FWD_DEFINED__
  315 #define __KnownFolderManager_FWD_DEFINED__
  316 #define __FSCopyHandler_FWD_DEFINED__
  317 #define __SharingConfigurationManager_FWD_DEFINED__
  318 #define __PreviousVersions_FWD_DEFINED__
  319 #define __NetworkConnections_FWD_DEFINED__
  320 #define __NamespaceTreeControl_FWD_DEFINED__
  321 #define __IENamespaceTreeControl_FWD_DEFINED__
  322 #define __ScheduledTasks_FWD_DEFINED__
  323 #define __ApplicationAssociationRegistration_FWD_DEFINED__
  324 #define __ApplicationAssociationRegistrationUI_FWD_DEFINED__
  325 #define __SearchFolderItemFactory_FWD_DEFINED__
  326 #define __OpenControlPanel_FWD_DEFINED__
  327 #define __MailRecipient_FWD_DEFINED__
  328 #define __NetworkExplorerFolder_FWD_DEFINED__
  329 #define __DestinationList_FWD_DEFINED__
  330 #define __ApplicationDestinations_FWD_DEFINED__
  331 #define __ApplicationDocumentLists_FWD_DEFINED__
  332 #define __HomeGroup_FWD_DEFINED__
  333 #define __ShellLibrary_FWD_DEFINED__
  334 #define __AppStartupLink_FWD_DEFINED__
  335 #define __EnumerableObjectCollection_FWD_DEFINED__
  336 #define __DesktopGadget_FWD_DEFINED__
  337 #define __PlaybackManager_FWD_DEFINED__
  338 #define __AccessibilityDockingService_FWD_DEFINED__
  339 #define __FrameworkInputPane_FWD_DEFINED__
  340 #define __DefFolderMenu_FWD_DEFINED__
  341 #define __AppVisibility_FWD_DEFINED__
  342 #define __AppShellVerbHandler_FWD_DEFINED__
  343 #define __ExecuteUnknown_FWD_DEFINED__
  344 #define __PackageDebugSettings_FWD_DEFINED__
  345 #define __ApplicationActivationManager_FWD_DEFINED__
  346 #define __ApplicationDesignModeSettings_FWD_DEFINED__
  347 #define __ExecuteFolder_FWD_DEFINED__
  348 #define __IAssocHandlerInvoker_FWD_DEFINED__
  349 #define __IAssocHandler_FWD_DEFINED__
  350 #define __IEnumAssocHandlers_FWD_DEFINED__
  351 #define __IDataObjectProvider_FWD_DEFINED__
  352 #define __IDataTransferManagerInterop_FWD_DEFINED__
  353 #define __IFrameworkInputPaneHandler_FWD_DEFINED__
  354 #define __IFrameworkInputPane_FWD_DEFINED__
  355 #define __ISearchableApplication_FWD_DEFINED__
  356 #define __IAccessibilityDockingServiceCallback_FWD_DEFINED__
  357 #define __IAccessibilityDockingService_FWD_DEFINED__
  358 #define __IAppVisibilityEvents_FWD_DEFINED__
  359 #define __IAppVisibility_FWD_DEFINED__
  360 #define __IPackageExecutionStateChangeNotification_FWD_DEFINED__
  361 #define __IPackageDebugSettings_FWD_DEFINED__
  362 #define __IExecuteCommandApplicationHostEnvironment_FWD_DEFINED__
  363 #define __IExecuteCommandHost_FWD_DEFINED__
  364 #define __IApplicationDesignModeSettings_FWD_DEFINED__
  365 #define __IInitializeWithWindow_FWD_DEFINED__
  366 #define __IHandlerInfo_FWD_DEFINED__
  367 #define __IHandlerActivationHost_FWD_DEFINED__
  368 const CMF_NORMAL = &h0
  369 const CMF_DEFAULTONLY = &h1
  370 const CMF_VERBSONLY = &h2
  371 const CMF_EXPLORE = &h4
  372 const CMF_NOVERBS = &h8
  373 const CMF_CANRENAME = &h10
  374 const CMF_NODEFAULT = &h20
  375 
  376 #if _WIN32_WINNT <= &h0502
  377     const CMF_INCLUDESTATIC = &h40
  378 #else
  379     const CMF_ITEMMENU = &h80
  380 #endif
  381 
  382 const CMF_EXTENDEDVERBS = &h100
  383 
  384 #if _WIN32_WINNT >= &h0600
  385     const CMF_DISABLEDVERBS = &h200
  386 #endif
  387 
  388 const CMF_ASYNCVERBSTATE = &h400
  389 const CMF_OPTIMIZEFORINVOKE = &h800
  390 const CMF_SYNCCASCADEMENU = &h1000
  391 const CMF_DONOTPICKDEFAULT = &h2000
  392 const CMF_RESERVED = &hffff0000
  393 const GCS_VERBA = &h0
  394 const GCS_HELPTEXTA = &h1
  395 const GCS_VALIDATEA = &h2
  396 const GCS_VERBW = &h4
  397 const GCS_HELPTEXTW = &h5
  398 const GCS_VALIDATEW = &h6
  399 const GCS_VERBICONW = &h14
  400 const GCS_UNICODE = &h4
  401 
  402 #ifdef UNICODE
  403     const GCS_VERB = GCS_VERBW
  404     const GCS_HELPTEXT = GCS_HELPTEXTW
  405     const GCS_VALIDATE = GCS_VALIDATEW
  406 #else
  407     const GCS_VERB = GCS_VERBA
  408     const GCS_HELPTEXT = GCS_HELPTEXTA
  409     const GCS_VALIDATE = GCS_VALIDATEA
  410 #endif
  411 
  412 #define CMDSTR_NEWFOLDERA "NewFolder"
  413 #define CMDSTR_VIEWLISTA "ViewList"
  414 #define CMDSTR_VIEWDETAILSA "ViewDetails"
  415 #define CMDSTR_NEWFOLDERW wstr("NewFolder")
  416 #define CMDSTR_VIEWLISTW wstr("ViewList")
  417 #define CMDSTR_VIEWDETAILSW wstr("ViewDetails")
  418 
  419 #ifdef UNICODE
  420     #define CMDSTR_NEWFOLDER CMDSTR_NEWFOLDERW
  421     #define CMDSTR_VIEWLIST CMDSTR_VIEWLISTW
  422     #define CMDSTR_VIEWDETAILS CMDSTR_VIEWDETAILSW
  423 #else
  424     #define CMDSTR_NEWFOLDER CMDSTR_NEWFOLDERA
  425     #define CMDSTR_VIEWLIST CMDSTR_VIEWLISTA
  426     #define CMDSTR_VIEWDETAILS CMDSTR_VIEWDETAILSA
  427 #endif
  428 
  429 const CMIC_MASK_HOTKEY = SEE_MASK_HOTKEY
  430 
  431 #if _WIN32_WINNT <= &h0502
  432     const CMIC_MASK_ICON = SEE_MASK_ICON
  433 #else
  434     #define CMIC_MASK_ICON SEE_MASK_ICON
  435 #endif
  436 
  437 const CMIC_MASK_FLAG_NO_UI = SEE_MASK_FLAG_NO_UI
  438 const CMIC_MASK_UNICODE = SEE_MASK_UNICODE
  439 const CMIC_MASK_NO_CONSOLE = SEE_MASK_NO_CONSOLE
  440 
  441 #if _WIN32_WINNT <= &h0502
  442     #define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME
  443     #define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE
  444 #endif
  445 
  446 #define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM
  447 const CMIC_MASK_ASYNCOK = SEE_MASK_ASYNCOK
  448 
  449 #if _WIN32_WINNT >= &h0600
  450     const CMIC_MASK_NOASYNC = SEE_MASK_NOASYNC
  451 #endif
  452 
  453 const CMIC_MASK_SHIFT_DOWN = &h10000000
  454 const CMIC_MASK_CONTROL_DOWN = &h40000000
  455 const CMIC_MASK_FLAG_LOG_USAGE = SEE_MASK_FLAG_LOG_USAGE
  456 const CMIC_MASK_NOZONECHECKS = SEE_MASK_NOZONECHECKS
  457 const CMIC_MASK_PTINVOKE = &h20000000
  458 
  459 type _CMINVOKECOMMANDINFO
  460     cbSize as DWORD
  461     fMask as DWORD
  462     hwnd as HWND
  463     lpVerb as LPCSTR
  464     lpParameters as LPCSTR
  465     lpDirectory as LPCSTR
  466     nShow as long
  467     dwHotKey as DWORD
  468     hIcon as HANDLE
  469 end type
  470 
  471 type CMINVOKECOMMANDINFO as _CMINVOKECOMMANDINFO
  472 type LPCMINVOKECOMMANDINFO as CMINVOKECOMMANDINFO ptr
  473 type PCCMINVOKECOMMANDINFO as const CMINVOKECOMMANDINFO ptr
  474 
  475 type _CMINVOKECOMMANDINFOEX
  476     cbSize as DWORD
  477     fMask as DWORD
  478     hwnd as HWND
  479     lpVerb as LPCSTR
  480     lpParameters as LPCSTR
  481     lpDirectory as LPCSTR
  482     nShow as long
  483     dwHotKey as DWORD
  484     hIcon as HANDLE
  485     lpTitle as LPCSTR
  486     lpVerbW as LPCWSTR
  487     lpParametersW as LPCWSTR
  488     lpDirectoryW as LPCWSTR
  489     lpTitleW as LPCWSTR
  490     ptInvoke as POINT
  491 end type
  492 
  493 type CMINVOKECOMMANDINFOEX as _CMINVOKECOMMANDINFOEX
  494 type LPCMINVOKECOMMANDINFOEX as CMINVOKECOMMANDINFOEX ptr
  495 type PCCMINVOKECOMMANDINFOEX as const CMINVOKECOMMANDINFOEX ptr
  496 #define __IContextMenu_INTERFACE_DEFINED__
  497 extern IID_IContextMenu as const GUID
  498 type IContextMenu as IContextMenu_
  499 
  500 type IContextMenuVtbl
  501     QueryInterface as function(byval This as IContextMenu ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  502     AddRef as function(byval This as IContextMenu ptr) as ULONG
  503     Release as function(byval This as IContextMenu ptr) as ULONG
  504     QueryContextMenu as function(byval This as IContextMenu ptr, byval hmenu as HMENU, byval indexMenu as UINT, byval idCmdFirst as UINT, byval idCmdLast as UINT, byval uFlags as UINT) as HRESULT
  505     InvokeCommand as function(byval This as IContextMenu ptr, byval pici as CMINVOKECOMMANDINFO ptr) as HRESULT
  506     GetCommandString as function(byval This as IContextMenu ptr, byval idCmd as UINT_PTR, byval uType as UINT, byval pReserved as UINT ptr, byval pszName as zstring ptr, byval cchMax as UINT) as HRESULT
  507 end type
  508 
  509 type IContextMenu_
  510     lpVtbl as IContextMenuVtbl ptr
  511 end type
  512 
  513 #define IContextMenu_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  514 #define IContextMenu_AddRef(This) (This)->lpVtbl->AddRef(This)
  515 #define IContextMenu_Release(This) (This)->lpVtbl->Release(This)
  516 #define IContextMenu_QueryContextMenu(This, hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags) (This)->lpVtbl->QueryContextMenu(This, hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags)
  517 #define IContextMenu_InvokeCommand(This, pici) (This)->lpVtbl->InvokeCommand(This, pici)
  518 #define IContextMenu_GetCommandString(This, idCmd, uType, pReserved, pszName, cchMax) (This)->lpVtbl->GetCommandString(This, idCmd, uType, pReserved, pszName, cchMax)
  519 
  520 declare function IContextMenu_QueryContextMenu_Proxy(byval This as IContextMenu ptr, byval hmenu as HMENU, byval indexMenu as UINT, byval idCmdFirst as UINT, byval idCmdLast as UINT, byval uFlags as UINT) as HRESULT
  521 declare sub IContextMenu_QueryContextMenu_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  522 declare function IContextMenu_InvokeCommand_Proxy(byval This as IContextMenu ptr, byval pici as CMINVOKECOMMANDINFO ptr) as HRESULT
  523 declare sub IContextMenu_InvokeCommand_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  524 declare function IContextMenu_GetCommandString_Proxy(byval This as IContextMenu ptr, byval idCmd as UINT_PTR, byval uType as UINT, byval pReserved as UINT ptr, byval pszName as zstring ptr, byval cchMax as UINT) as HRESULT
  525 declare sub IContextMenu_GetCommandString_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  526 type LPCONTEXTMENU as IContextMenu ptr
  527 #define __IContextMenu2_INTERFACE_DEFINED__
  528 extern IID_IContextMenu2 as const GUID
  529 type IContextMenu2 as IContextMenu2_
  530 
  531 type IContextMenu2Vtbl
  532     QueryInterface as function(byval This as IContextMenu2 ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  533     AddRef as function(byval This as IContextMenu2 ptr) as ULONG
  534     Release as function(byval This as IContextMenu2 ptr) as ULONG
  535     QueryContextMenu as function(byval This as IContextMenu2 ptr, byval hmenu as HMENU, byval indexMenu as UINT, byval idCmdFirst as UINT, byval idCmdLast as UINT, byval uFlags as UINT) as HRESULT
  536     InvokeCommand as function(byval This as IContextMenu2 ptr, byval pici as CMINVOKECOMMANDINFO ptr) as HRESULT
  537     GetCommandString as function(byval This as IContextMenu2 ptr, byval idCmd as UINT_PTR, byval uType as UINT, byval pReserved as UINT ptr, byval pszName as zstring ptr, byval cchMax as UINT) as HRESULT
  538     HandleMenuMsg as function(byval This as IContextMenu2 ptr, byval uMsg as UINT, byval wParam as WPARAM, byval lParam as LPARAM) as HRESULT
  539 end type
  540 
  541 type IContextMenu2_
  542     lpVtbl as IContextMenu2Vtbl ptr
  543 end type
  544 
  545 #define IContextMenu2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  546 #define IContextMenu2_AddRef(This) (This)->lpVtbl->AddRef(This)
  547 #define IContextMenu2_Release(This) (This)->lpVtbl->Release(This)
  548 #define IContextMenu2_QueryContextMenu(This, hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags) (This)->lpVtbl->QueryContextMenu(This, hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags)
  549 #define IContextMenu2_InvokeCommand(This, pici) (This)->lpVtbl->InvokeCommand(This, pici)
  550 #define IContextMenu2_GetCommandString(This, idCmd, uType, pReserved, pszName, cchMax) (This)->lpVtbl->GetCommandString(This, idCmd, uType, pReserved, pszName, cchMax)
  551 #define IContextMenu2_HandleMenuMsg(This, uMsg, wParam, lParam) (This)->lpVtbl->HandleMenuMsg(This, uMsg, wParam, lParam)
  552 declare function IContextMenu2_HandleMenuMsg_Proxy(byval This as IContextMenu2 ptr, byval uMsg as UINT, byval wParam as WPARAM, byval lParam as LPARAM) as HRESULT
  553 declare sub IContextMenu2_HandleMenuMsg_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  554 type LPCONTEXTMENU2 as IContextMenu2 ptr
  555 #define __IContextMenu3_INTERFACE_DEFINED__
  556 extern IID_IContextMenu3 as const GUID
  557 type IContextMenu3 as IContextMenu3_
  558 
  559 type IContextMenu3Vtbl
  560     QueryInterface as function(byval This as IContextMenu3 ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  561     AddRef as function(byval This as IContextMenu3 ptr) as ULONG
  562     Release as function(byval This as IContextMenu3 ptr) as ULONG
  563     QueryContextMenu as function(byval This as IContextMenu3 ptr, byval hmenu as HMENU, byval indexMenu as UINT, byval idCmdFirst as UINT, byval idCmdLast as UINT, byval uFlags as UINT) as HRESULT
  564     InvokeCommand as function(byval This as IContextMenu3 ptr, byval pici as CMINVOKECOMMANDINFO ptr) as HRESULT
  565     GetCommandString as function(byval This as IContextMenu3 ptr, byval idCmd as UINT_PTR, byval uType as UINT, byval pReserved as UINT ptr, byval pszName as zstring ptr, byval cchMax as UINT) as HRESULT
  566     HandleMenuMsg as function(byval This as IContextMenu3 ptr, byval uMsg as UINT, byval wParam as WPARAM, byval lParam as LPARAM) as HRESULT
  567     HandleMenuMsg2 as function(byval This as IContextMenu3 ptr, byval uMsg as UINT, byval wParam as WPARAM, byval lParam as LPARAM, byval plResult as LRESULT ptr) as HRESULT
  568 end type
  569 
  570 type IContextMenu3_
  571     lpVtbl as IContextMenu3Vtbl ptr
  572 end type
  573 
  574 #define IContextMenu3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  575 #define IContextMenu3_AddRef(This) (This)->lpVtbl->AddRef(This)
  576 #define IContextMenu3_Release(This) (This)->lpVtbl->Release(This)
  577 #define IContextMenu3_QueryContextMenu(This, hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags) (This)->lpVtbl->QueryContextMenu(This, hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags)
  578 #define IContextMenu3_InvokeCommand(This, pici) (This)->lpVtbl->InvokeCommand(This, pici)
  579 #define IContextMenu3_GetCommandString(This, idCmd, uType, pReserved, pszName, cchMax) (This)->lpVtbl->GetCommandString(This, idCmd, uType, pReserved, pszName, cchMax)
  580 #define IContextMenu3_HandleMenuMsg(This, uMsg, wParam, lParam) (This)->lpVtbl->HandleMenuMsg(This, uMsg, wParam, lParam)
  581 #define IContextMenu3_HandleMenuMsg2(This, uMsg, wParam, lParam, plResult) (This)->lpVtbl->HandleMenuMsg2(This, uMsg, wParam, lParam, plResult)
  582 declare function IContextMenu3_HandleMenuMsg2_Proxy(byval This as IContextMenu3 ptr, byval uMsg as UINT, byval wParam as WPARAM, byval lParam as LPARAM, byval plResult as LRESULT ptr) as HRESULT
  583 declare sub IContextMenu3_HandleMenuMsg2_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  584 type LPCONTEXTMENU3 as IContextMenu3 ptr
  585 #define __IExecuteCommand_INTERFACE_DEFINED__
  586 extern IID_IExecuteCommand as const GUID
  587 type IExecuteCommand as IExecuteCommand_
  588 
  589 type IExecuteCommandVtbl
  590     QueryInterface as function(byval This as IExecuteCommand ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  591     AddRef as function(byval This as IExecuteCommand ptr) as ULONG
  592     Release as function(byval This as IExecuteCommand ptr) as ULONG
  593     SetKeyState as function(byval This as IExecuteCommand ptr, byval grfKeyState as DWORD) as HRESULT
  594     SetParameters as function(byval This as IExecuteCommand ptr, byval pszParameters as LPCWSTR) as HRESULT
  595     SetPosition as function(byval This as IExecuteCommand ptr, byval pt as POINT) as HRESULT
  596     SetShowWindow as function(byval This as IExecuteCommand ptr, byval nShow as long) as HRESULT
  597     SetNoShowUI as function(byval This as IExecuteCommand ptr, byval fNoShowUI as WINBOOL) as HRESULT
  598     SetDirectory as function(byval This as IExecuteCommand ptr, byval pszDirectory as LPCWSTR) as HRESULT
  599     Execute as function(byval This as IExecuteCommand ptr) as HRESULT
  600 end type
  601 
  602 type IExecuteCommand_
  603     lpVtbl as IExecuteCommandVtbl ptr
  604 end type
  605 
  606 #define IExecuteCommand_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  607 #define IExecuteCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
  608 #define IExecuteCommand_Release(This) (This)->lpVtbl->Release(This)
  609 #define IExecuteCommand_SetKeyState(This, grfKeyState) (This)->lpVtbl->SetKeyState(This, grfKeyState)
  610 #define IExecuteCommand_SetParameters(This, pszParameters) (This)->lpVtbl->SetParameters(This, pszParameters)
  611 #define IExecuteCommand_SetPosition(This, pt) (This)->lpVtbl->SetPosition(This, pt)
  612 #define IExecuteCommand_SetShowWindow(This, nShow) (This)->lpVtbl->SetShowWindow(This, nShow)
  613 #define IExecuteCommand_SetNoShowUI(This, fNoShowUI) (This)->lpVtbl->SetNoShowUI(This, fNoShowUI)
  614 #define IExecuteCommand_SetDirectory(This, pszDirectory) (This)->lpVtbl->SetDirectory(This, pszDirectory)
  615 #define IExecuteCommand_Execute(This) (This)->lpVtbl->Execute(This)
  616 
  617 declare function IExecuteCommand_SetKeyState_Proxy(byval This as IExecuteCommand ptr, byval grfKeyState as DWORD) as HRESULT
  618 declare sub IExecuteCommand_SetKeyState_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  619 declare function IExecuteCommand_SetParameters_Proxy(byval This as IExecuteCommand ptr, byval pszParameters as LPCWSTR) as HRESULT
  620 declare sub IExecuteCommand_SetParameters_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  621 declare function IExecuteCommand_SetPosition_Proxy(byval This as IExecuteCommand ptr, byval pt as POINT) as HRESULT
  622 declare sub IExecuteCommand_SetPosition_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  623 declare function IExecuteCommand_SetShowWindow_Proxy(byval This as IExecuteCommand ptr, byval nShow as long) as HRESULT
  624 declare sub IExecuteCommand_SetShowWindow_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  625 declare function IExecuteCommand_SetNoShowUI_Proxy(byval This as IExecuteCommand ptr, byval fNoShowUI as WINBOOL) as HRESULT
  626 declare sub IExecuteCommand_SetNoShowUI_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  627 declare function IExecuteCommand_SetDirectory_Proxy(byval This as IExecuteCommand ptr, byval pszDirectory as LPCWSTR) as HRESULT
  628 declare sub IExecuteCommand_SetDirectory_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  629 declare function IExecuteCommand_Execute_Proxy(byval This as IExecuteCommand ptr) as HRESULT
  630 declare sub IExecuteCommand_Execute_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  631 #define __IPersistFolder_INTERFACE_DEFINED__
  632 extern IID_IPersistFolder as const GUID
  633 type IPersistFolder as IPersistFolder_
  634 
  635 type IPersistFolderVtbl
  636     QueryInterface as function(byval This as IPersistFolder ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  637     AddRef as function(byval This as IPersistFolder ptr) as ULONG
  638     Release as function(byval This as IPersistFolder ptr) as ULONG
  639     GetClassID as function(byval This as IPersistFolder ptr, byval pClassID as CLSID ptr) as HRESULT
  640     Initialize as function(byval This as IPersistFolder ptr, byval pidl as LPCITEMIDLIST) as HRESULT
  641 end type
  642 
  643 type IPersistFolder_
  644     lpVtbl as IPersistFolderVtbl ptr
  645 end type
  646 
  647 #define IPersistFolder_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  648 #define IPersistFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
  649 #define IPersistFolder_Release(This) (This)->lpVtbl->Release(This)
  650 #define IPersistFolder_GetClassID(This, pClassID) (This)->lpVtbl->GetClassID(This, pClassID)
  651 #define IPersistFolder_Initialize(This, pidl) (This)->lpVtbl->Initialize(This, pidl)
  652 declare function IPersistFolder_Initialize_Proxy(byval This as IPersistFolder ptr, byval pidl as LPCITEMIDLIST) as HRESULT
  653 declare sub IPersistFolder_Initialize_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  654 type LPPERSISTFOLDER as IPersistFolder ptr
  655 const IRTIR_TASK_NOT_RUNNING = 0
  656 const IRTIR_TASK_RUNNING = 1
  657 const IRTIR_TASK_SUSPENDED = 2
  658 const IRTIR_TASK_PENDING = 3
  659 const IRTIR_TASK_FINISHED = 4
  660 #define __IRunnableTask_INTERFACE_DEFINED__
  661 extern IID_IRunnableTask as const GUID
  662 type IRunnableTask as IRunnableTask_
  663 
  664 type IRunnableTaskVtbl
  665     QueryInterface as function(byval This as IRunnableTask ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  666     AddRef as function(byval This as IRunnableTask ptr) as ULONG
  667     Release as function(byval This as IRunnableTask ptr) as ULONG
  668     Run as function(byval This as IRunnableTask ptr) as HRESULT
  669     Kill as function(byval This as IRunnableTask ptr, byval bWait as WINBOOL) as HRESULT
  670     Suspend as function(byval This as IRunnableTask ptr) as HRESULT
  671     Resume as function(byval This as IRunnableTask ptr) as HRESULT
  672     IsRunning as function(byval This as IRunnableTask ptr) as ULONG
  673 end type
  674 
  675 type IRunnableTask_
  676     lpVtbl as IRunnableTaskVtbl ptr
  677 end type
  678 
  679 #define IRunnableTask_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  680 #define IRunnableTask_AddRef(This) (This)->lpVtbl->AddRef(This)
  681 #define IRunnableTask_Release(This) (This)->lpVtbl->Release(This)
  682 #define IRunnableTask_Run(This) (This)->lpVtbl->Run(This)
  683 #define IRunnableTask_Kill(This, bWait) (This)->lpVtbl->Kill(This, bWait)
  684 #define IRunnableTask_Suspend(This) (This)->lpVtbl->Suspend(This)
  685 #define IRunnableTask_Resume(This) (This)->lpVtbl->Resume(This)
  686 #define IRunnableTask_IsRunning(This) (This)->lpVtbl->IsRunning(This)
  687 
  688 declare function IRunnableTask_Run_Proxy(byval This as IRunnableTask ptr) as HRESULT
  689 declare sub IRunnableTask_Run_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  690 declare function IRunnableTask_Kill_Proxy(byval This as IRunnableTask ptr, byval bWait as WINBOOL) as HRESULT
  691 declare sub IRunnableTask_Kill_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  692 declare function IRunnableTask_Suspend_Proxy(byval This as IRunnableTask ptr) as HRESULT
  693 declare sub IRunnableTask_Suspend_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  694 declare function IRunnableTask_Resume_Proxy(byval This as IRunnableTask ptr) as HRESULT
  695 declare sub IRunnableTask_Resume_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  696 declare function IRunnableTask_IsRunning_Proxy(byval This as IRunnableTask ptr) as ULONG
  697 declare sub IRunnableTask_IsRunning_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  698 extern TOID_NULL alias "GUID_NULL" as const IID
  699 
  700 const ITSAT_DEFAULT_LPARAM = cast(DWORD_PTR, -1)
  701 const ITSAT_DEFAULT_PRIORITY = &h10000000
  702 const ITSAT_MAX_PRIORITY = &h7fffffff
  703 const ITSAT_MIN_PRIORITY = &h00000000
  704 const ITSSFLAG_COMPLETE_ON_DESTROY = &h0
  705 const ITSSFLAG_KILL_ON_DESTROY = &h1
  706 const ITSSFLAG_FLAGS_MASK = &h3
  707 const ITSS_THREAD_DESTROY_DEFAULT_TIMEOUT = 10 * 1000
  708 const ITSS_THREAD_TERMINATE_TIMEOUT = INFINITE
  709 const ITSS_THREAD_TIMEOUT_NO_CHANGE = INFINITE - 1
  710 #define __IShellTaskScheduler_INTERFACE_DEFINED__
  711 extern IID_IShellTaskScheduler as const GUID
  712 type IShellTaskScheduler as IShellTaskScheduler_
  713 
  714 type IShellTaskSchedulerVtbl
  715     QueryInterface as function(byval This as IShellTaskScheduler ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  716     AddRef as function(byval This as IShellTaskScheduler ptr) as ULONG
  717     Release as function(byval This as IShellTaskScheduler ptr) as ULONG
  718     AddTask as function(byval This as IShellTaskScheduler ptr, byval prt as IRunnableTask ptr, byval rtoid as const TASKOWNERID const ptr, byval lParam as DWORD_PTR, byval dwPriority as DWORD) as HRESULT
  719     RemoveTasks as function(byval This as IShellTaskScheduler ptr, byval rtoid as const TASKOWNERID const ptr, byval lParam as DWORD_PTR, byval bWaitIfRunning as WINBOOL) as HRESULT
  720     CountTasks as function(byval This as IShellTaskScheduler ptr, byval rtoid as const TASKOWNERID const ptr) as UINT
  721     Status as function(byval This as IShellTaskScheduler ptr, byval dwReleaseStatus as DWORD, byval dwThreadTimeout as DWORD) as HRESULT
  722 end type
  723 
  724 type IShellTaskScheduler_
  725     lpVtbl as IShellTaskSchedulerVtbl ptr
  726 end type
  727 
  728 #define IShellTaskScheduler_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  729 #define IShellTaskScheduler_AddRef(This) (This)->lpVtbl->AddRef(This)
  730 #define IShellTaskScheduler_Release(This) (This)->lpVtbl->Release(This)
  731 #define IShellTaskScheduler_AddTask(This, prt, rtoid, lParam, dwPriority) (This)->lpVtbl->AddTask(This, prt, rtoid, lParam, dwPriority)
  732 #define IShellTaskScheduler_RemoveTasks(This, rtoid, lParam, bWaitIfRunning) (This)->lpVtbl->RemoveTasks(This, rtoid, lParam, bWaitIfRunning)
  733 #define IShellTaskScheduler_CountTasks(This, rtoid) (This)->lpVtbl->CountTasks(This, rtoid)
  734 #define IShellTaskScheduler_Status(This, dwReleaseStatus, dwThreadTimeout) (This)->lpVtbl->Status(This, dwReleaseStatus, dwThreadTimeout)
  735 
  736 declare function IShellTaskScheduler_AddTask_Proxy(byval This as IShellTaskScheduler ptr, byval prt as IRunnableTask ptr, byval rtoid as const TASKOWNERID const ptr, byval lParam as DWORD_PTR, byval dwPriority as DWORD) as HRESULT
  737 declare sub IShellTaskScheduler_AddTask_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  738 declare function IShellTaskScheduler_RemoveTasks_Proxy(byval This as IShellTaskScheduler ptr, byval rtoid as const TASKOWNERID const ptr, byval lParam as DWORD_PTR, byval bWaitIfRunning as WINBOOL) as HRESULT
  739 declare sub IShellTaskScheduler_RemoveTasks_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  740 declare function IShellTaskScheduler_CountTasks_Proxy(byval This as IShellTaskScheduler ptr, byval rtoid as const TASKOWNERID const ptr) as UINT
  741 declare sub IShellTaskScheduler_CountTasks_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  742 declare function IShellTaskScheduler_Status_Proxy(byval This as IShellTaskScheduler ptr, byval dwReleaseStatus as DWORD, byval dwThreadTimeout as DWORD) as HRESULT
  743 declare sub IShellTaskScheduler_Status_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  744 extern SID_ShellTaskScheduler alias "IID_IShellTaskScheduler" as const GUID
  745 #define __IQueryCodePage_INTERFACE_DEFINED__
  746 extern IID_IQueryCodePage as const GUID
  747 type IQueryCodePage as IQueryCodePage_
  748 
  749 type IQueryCodePageVtbl
  750     QueryInterface as function(byval This as IQueryCodePage ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  751     AddRef as function(byval This as IQueryCodePage ptr) as ULONG
  752     Release as function(byval This as IQueryCodePage ptr) as ULONG
  753     GetCodePage as function(byval This as IQueryCodePage ptr, byval puiCodePage as UINT ptr) as HRESULT
  754     SetCodePage as function(byval This as IQueryCodePage ptr, byval uiCodePage as UINT) as HRESULT
  755 end type
  756 
  757 type IQueryCodePage_
  758     lpVtbl as IQueryCodePageVtbl ptr
  759 end type
  760 
  761 #define IQueryCodePage_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  762 #define IQueryCodePage_AddRef(This) (This)->lpVtbl->AddRef(This)
  763 #define IQueryCodePage_Release(This) (This)->lpVtbl->Release(This)
  764 #define IQueryCodePage_GetCodePage(This, puiCodePage) (This)->lpVtbl->GetCodePage(This, puiCodePage)
  765 #define IQueryCodePage_SetCodePage(This, uiCodePage) (This)->lpVtbl->SetCodePage(This, uiCodePage)
  766 
  767 declare function IQueryCodePage_GetCodePage_Proxy(byval This as IQueryCodePage ptr, byval puiCodePage as UINT ptr) as HRESULT
  768 declare sub IQueryCodePage_GetCodePage_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  769 declare function IQueryCodePage_SetCodePage_Proxy(byval This as IQueryCodePage ptr, byval uiCodePage as UINT) as HRESULT
  770 declare sub IQueryCodePage_SetCodePage_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  771 #define __IPersistFolder2_INTERFACE_DEFINED__
  772 extern IID_IPersistFolder2 as const GUID
  773 type IPersistFolder2 as IPersistFolder2_
  774 
  775 type IPersistFolder2Vtbl
  776     QueryInterface as function(byval This as IPersistFolder2 ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  777     AddRef as function(byval This as IPersistFolder2 ptr) as ULONG
  778     Release as function(byval This as IPersistFolder2 ptr) as ULONG
  779     GetClassID as function(byval This as IPersistFolder2 ptr, byval pClassID as CLSID ptr) as HRESULT
  780     Initialize as function(byval This as IPersistFolder2 ptr, byval pidl as LPCITEMIDLIST) as HRESULT
  781     GetCurFolder as function(byval This as IPersistFolder2 ptr, byval ppidl as LPITEMIDLIST ptr) as HRESULT
  782 end type
  783 
  784 type IPersistFolder2_
  785     lpVtbl as IPersistFolder2Vtbl ptr
  786 end type
  787 
  788 #define IPersistFolder2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  789 #define IPersistFolder2_AddRef(This) (This)->lpVtbl->AddRef(This)
  790 #define IPersistFolder2_Release(This) (This)->lpVtbl->Release(This)
  791 #define IPersistFolder2_GetClassID(This, pClassID) (This)->lpVtbl->GetClassID(This, pClassID)
  792 #define IPersistFolder2_Initialize(This, pidl) (This)->lpVtbl->Initialize(This, pidl)
  793 #define IPersistFolder2_GetCurFolder(This, ppidl) (This)->lpVtbl->GetCurFolder(This, ppidl)
  794 declare function IPersistFolder2_GetCurFolder_Proxy(byval This as IPersistFolder2 ptr, byval ppidl as LPITEMIDLIST ptr) as HRESULT
  795 declare sub IPersistFolder2_GetCurFolder_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  796 
  797 type _PERSIST_FOLDER_TARGET_INFO
  798     pidlTargetFolder as LPITEMIDLIST
  799     szTargetParsingName as wstring * 260
  800     szNetworkProvider as wstring * 260
  801     dwAttributes as DWORD
  802     csidl as long
  803 end type
  804 
  805 type PERSIST_FOLDER_TARGET_INFO as _PERSIST_FOLDER_TARGET_INFO
  806 #define __IPersistFolder3_INTERFACE_DEFINED__
  807 extern IID_IPersistFolder3 as const GUID
  808 type IPersistFolder3 as IPersistFolder3_
  809 
  810 type IPersistFolder3Vtbl
  811     QueryInterface as function(byval This as IPersistFolder3 ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  812     AddRef as function(byval This as IPersistFolder3 ptr) as ULONG
  813     Release as function(byval This as IPersistFolder3 ptr) as ULONG
  814     GetClassID as function(byval This as IPersistFolder3 ptr, byval pClassID as CLSID ptr) as HRESULT
  815     Initialize as function(byval This as IPersistFolder3 ptr, byval pidl as LPCITEMIDLIST) as HRESULT
  816     GetCurFolder as function(byval This as IPersistFolder3 ptr, byval ppidl as LPITEMIDLIST ptr) as HRESULT
  817     InitializeEx as function(byval This as IPersistFolder3 ptr, byval pbc as IBindCtx ptr, byval pidlRoot as LPCITEMIDLIST, byval ppfti as const PERSIST_FOLDER_TARGET_INFO ptr) as HRESULT
  818     GetFolderTargetInfo as function(byval This as IPersistFolder3 ptr, byval ppfti as PERSIST_FOLDER_TARGET_INFO ptr) as HRESULT
  819 end type
  820 
  821 type IPersistFolder3_
  822     lpVtbl as IPersistFolder3Vtbl ptr
  823 end type
  824 
  825 #define IPersistFolder3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  826 #define IPersistFolder3_AddRef(This) (This)->lpVtbl->AddRef(This)
  827 #define IPersistFolder3_Release(This) (This)->lpVtbl->Release(This)
  828 #define IPersistFolder3_GetClassID(This, pClassID) (This)->lpVtbl->GetClassID(This, pClassID)
  829 #define IPersistFolder3_Initialize(This, pidl) (This)->lpVtbl->Initialize(This, pidl)
  830 #define IPersistFolder3_GetCurFolder(This, ppidl) (This)->lpVtbl->GetCurFolder(This, ppidl)
  831 #define IPersistFolder3_InitializeEx(This, pbc, pidlRoot, ppfti) (This)->lpVtbl->InitializeEx(This, pbc, pidlRoot, ppfti)
  832 #define IPersistFolder3_GetFolderTargetInfo(This, ppfti) (This)->lpVtbl->GetFolderTargetInfo(This, ppfti)
  833 
  834 declare function IPersistFolder3_InitializeEx_Proxy(byval This as IPersistFolder3 ptr, byval pbc as IBindCtx ptr, byval pidlRoot as LPCITEMIDLIST, byval ppfti as const PERSIST_FOLDER_TARGET_INFO ptr) as HRESULT
  835 declare sub IPersistFolder3_InitializeEx_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  836 declare function IPersistFolder3_GetFolderTargetInfo_Proxy(byval This as IPersistFolder3 ptr, byval ppfti as PERSIST_FOLDER_TARGET_INFO ptr) as HRESULT
  837 declare sub IPersistFolder3_GetFolderTargetInfo_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  838 #define __IPersistIDList_INTERFACE_DEFINED__
  839 extern IID_IPersistIDList as const GUID
  840 type IPersistIDList as IPersistIDList_
  841 
  842 type IPersistIDListVtbl
  843     QueryInterface as function(byval This as IPersistIDList ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  844     AddRef as function(byval This as IPersistIDList ptr) as ULONG
  845     Release as function(byval This as IPersistIDList ptr) as ULONG
  846     GetClassID as function(byval This as IPersistIDList ptr, byval pClassID as CLSID ptr) as HRESULT
  847     SetIDList as function(byval This as IPersistIDList ptr, byval pidl as LPCITEMIDLIST) as HRESULT
  848     GetIDList as function(byval This as IPersistIDList ptr, byval ppidl as LPITEMIDLIST ptr) as HRESULT
  849 end type
  850 
  851 type IPersistIDList_
  852     lpVtbl as IPersistIDListVtbl ptr
  853 end type
  854 
  855 #define IPersistIDList_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  856 #define IPersistIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
  857 #define IPersistIDList_Release(This) (This)->lpVtbl->Release(This)
  858 #define IPersistIDList_GetClassID(This, pClassID) (This)->lpVtbl->GetClassID(This, pClassID)
  859 #define IPersistIDList_SetIDList(This, pidl) (This)->lpVtbl->SetIDList(This, pidl)
  860 #define IPersistIDList_GetIDList(This, ppidl) (This)->lpVtbl->GetIDList(This, ppidl)
  861 
  862 declare function IPersistIDList_SetIDList_Proxy(byval This as IPersistIDList ptr, byval pidl as LPCITEMIDLIST) as HRESULT
  863 declare sub IPersistIDList_SetIDList_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  864 declare function IPersistIDList_GetIDList_Proxy(byval This as IPersistIDList ptr, byval ppidl as LPITEMIDLIST ptr) as HRESULT
  865 declare sub IPersistIDList_GetIDList_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  866 #define __IEnumIDList_INTERFACE_DEFINED__
  867 extern IID_IEnumIDList as const GUID
  868 type IEnumIDList as IEnumIDList_
  869 
  870 type IEnumIDListVtbl
  871     QueryInterface as function(byval This as IEnumIDList ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  872     AddRef as function(byval This as IEnumIDList ptr) as ULONG
  873     Release as function(byval This as IEnumIDList ptr) as ULONG
  874     Next as function(byval This as IEnumIDList ptr, byval celt as ULONG, byval rgelt as LPITEMIDLIST ptr, byval pceltFetched as ULONG ptr) as HRESULT
  875     Skip as function(byval This as IEnumIDList ptr, byval celt as ULONG) as HRESULT
  876     Reset as function(byval This as IEnumIDList ptr) as HRESULT
  877     Clone as function(byval This as IEnumIDList ptr, byval ppenum as IEnumIDList ptr ptr) as HRESULT
  878 end type
  879 
  880 type IEnumIDList_
  881     lpVtbl as IEnumIDListVtbl ptr
  882 end type
  883 
  884 #define IEnumIDList_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  885 #define IEnumIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
  886 #define IEnumIDList_Release(This) (This)->lpVtbl->Release(This)
  887 #define IEnumIDList_Next(This, celt, rgelt, pceltFetched) (This)->lpVtbl->Next(This, celt, rgelt, pceltFetched)
  888 #define IEnumIDList_Skip(This, celt) (This)->lpVtbl->Skip(This, celt)
  889 #define IEnumIDList_Reset(This) (This)->lpVtbl->Reset(This)
  890 #define IEnumIDList_Clone(This, ppenum) (This)->lpVtbl->Clone(This, ppenum)
  891 
  892 declare function IEnumIDList_RemoteNext_Proxy(byval This as IEnumIDList ptr, byval celt as ULONG, byval rgelt as LPITEMIDLIST ptr, byval pceltFetched as ULONG ptr) as HRESULT
  893 declare sub IEnumIDList_RemoteNext_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  894 declare function IEnumIDList_Skip_Proxy(byval This as IEnumIDList ptr, byval celt as ULONG) as HRESULT
  895 declare sub IEnumIDList_Skip_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  896 declare function IEnumIDList_Reset_Proxy(byval This as IEnumIDList ptr) as HRESULT
  897 declare sub IEnumIDList_Reset_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  898 declare function IEnumIDList_Clone_Proxy(byval This as IEnumIDList ptr, byval ppenum as IEnumIDList ptr ptr) as HRESULT
  899 declare sub IEnumIDList_Clone_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  900 declare function IEnumIDList_Next_Proxy(byval This as IEnumIDList ptr, byval celt as ULONG, byval rgelt as LPITEMIDLIST ptr, byval pceltFetched as ULONG ptr) as HRESULT
  901 declare function IEnumIDList_Next_Stub(byval This as IEnumIDList ptr, byval celt as ULONG, byval rgelt as LPITEMIDLIST ptr, byval pceltFetched as ULONG ptr) as HRESULT
  902 type LPENUMIDLIST as IEnumIDList ptr
  903 #define __IEnumFullIDList_INTERFACE_DEFINED__
  904 extern IID_IEnumFullIDList as const GUID
  905 type IEnumFullIDList as IEnumFullIDList_
  906 
  907 type IEnumFullIDListVtbl
  908     QueryInterface as function(byval This as IEnumFullIDList ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
  909     AddRef as function(byval This as IEnumFullIDList ptr) as ULONG
  910     Release as function(byval This as IEnumFullIDList ptr) as ULONG
  911     Next as function(byval This as IEnumFullIDList ptr, byval celt as ULONG, byval rgelt as LPITEMIDLIST ptr, byval pceltFetched as ULONG ptr) as HRESULT
  912     Skip as function(byval This as IEnumFullIDList ptr, byval celt as ULONG) as HRESULT
  913     Reset as function(byval This as IEnumFullIDList ptr) as HRESULT
  914     Clone as function(byval This as IEnumFullIDList ptr, byval ppenum as IEnumFullIDList ptr ptr) as HRESULT
  915 end type
  916 
  917 type IEnumFullIDList_
  918     lpVtbl as IEnumFullIDListVtbl ptr
  919 end type
  920 
  921 #define IEnumFullIDList_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
  922 #define IEnumFullIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
  923 #define IEnumFullIDList_Release(This) (This)->lpVtbl->Release(This)
  924 #define IEnumFullIDList_Next(This, celt, rgelt, pceltFetched) (This)->lpVtbl->Next(This, celt, rgelt, pceltFetched)
  925 #define IEnumFullIDList_Skip(This, celt) (This)->lpVtbl->Skip(This, celt)
  926 #define IEnumFullIDList_Reset(This) (This)->lpVtbl->Reset(This)
  927 #define IEnumFullIDList_Clone(This, ppenum) (This)->lpVtbl->Clone(This, ppenum)
  928 
  929 declare function IEnumFullIDList_RemoteNext_Proxy(byval This as IEnumFullIDList ptr, byval celt as ULONG, byval rgelt as LPITEMIDLIST ptr, byval pceltFetched as ULONG ptr) as HRESULT
  930 declare sub IEnumFullIDList_RemoteNext_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  931 declare function IEnumFullIDList_Skip_Proxy(byval This as IEnumFullIDList ptr, byval celt as ULONG) as HRESULT
  932 declare sub IEnumFullIDList_Skip_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  933 declare function IEnumFullIDList_Reset_Proxy(byval This as IEnumFullIDList ptr) as HRESULT
  934 declare sub IEnumFullIDList_Reset_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  935 declare function IEnumFullIDList_Clone_Proxy(byval This as IEnumFullIDList ptr, byval ppenum as IEnumFullIDList ptr ptr) as HRESULT
  936 declare sub IEnumFullIDList_Clone_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
  937 declare function IEnumFullIDList_Next_Proxy(byval This as IEnumFullIDList ptr, byval celt as ULONG, byval rgelt as LPITEMIDLIST ptr, byval pceltFetched as ULONG ptr) as HRESULT
  938 declare function IEnumFullIDList_Next_Stub(byval This as IEnumFullIDList ptr, byval celt as ULONG, byval rgelt as LPITEMIDLIST ptr, byval pceltFetched as ULONG ptr) as HRESULT
  939 
  940 type _SHGDNF as long
  941 enum
  942     SHGDN_NORMAL = &h0
  943     SHGDN_INFOLDER = &h1
  944     SHGDN_FOREDITING = &h1000
  945     SHGDN_FORADDRESSBAR = &h4000
  946     SHGDN_FORPARSING = &h8000
  947 end enum
  948 
  949 type SHGDNF as DWORD
  950 
  951 type _SHCONTF as long
  952 enum
  953     SHCONTF_CHECKING_FOR_CHILDREN = &h10
  954     SHCONTF_FOLDERS = &h20
  955     SHCONTF_NONFOLDERS = &h40
  956     SHCONTF_INCLUDEHIDDEN = &h80
  957     SHCONTF_INIT_ON_FIRST_NEXT = &h100
  958     SHCONTF_NETPRINTERSRCH = &h200
  959     SHCONTF_SHAREABLE = &h400
  960     SHCONTF_STORAGE = &h800
  961     SHCONTF_NAVIGATION_ENUM = &h1000
  962     SHCONTF_FASTITEMS = &h2000
  963     SHCONTF_FLATLIST = &h4000
  964     SHCONTF_ENABLE_ASYNC = &h8000
  965     SHCONTF_INCLUDESUPERHIDDEN = &h10000
  966 end enum
  967 
  968 type SHCONTF as DWORD
  969 const SHCIDS_ALLFIELDS = &h80000000
  970 const SHCIDS_CANONICALONLY = &h10000000
  971 const SHCIDS_BITMASK = &hffff0000
  972 const SHCIDS_COLUMNMASK = &h0000ffff
  973 const SFGAO_CANCOPY = DROPEFFECT_COPY
  974 const SFGAO_CANMOVE = DROPEFFECT_MOVE
  975 const SFGAO_CANLINK = DROPEFFECT_LINK
  976 const SFGAO_STORAGE = &h8
  977 const SFGAO_CANRENAME = &h10
  978 const SFGAO_CANDELETE = &h20
  979 const SFGAO_HASPROPSHEET = &h40
  980 const SFGAO_DROPTARGET = &h100
  981 const SFGAO_CAPABILITYMASK = &h177
  982 const SFGAO_SYSTEM = &h1000
  983 const SFGAO_ENCRYPTED = &h2000
  984 const SFGAO_ISSLOW = &h4000
  985 const SFGAO_GHOSTED = &h8000
  986 const SFGAO_LINK = &h10000
  987 const SFGAO_SHARE = &h20000
  988 const SFGAO_READONLY = &h40000
  989 const SFGAO_HIDDEN = &h80000
  990 const SFGAO_DISPLAYATTRMASK = &hfc000
  991 const SFGAO_FILESYSANCESTOR = &h10000000
  992 const SFGAO_FOLDER = &h20000000
  993 const SFGAO_FILESYSTEM = &h40000000
  994 const SFGAO_HASSUBFOLDER = &h80000000
  995 const SFGAO_CONTENTSMASK = &h80000000
  996 const SFGAO_VALIDATE = &h1000000
  997 const SFGAO_REMOVABLE = &h2000000
  998 const SFGAO_COMPRESSED = &h4000000
  999 const SFGAO_BROWSABLE = &h8000000
 1000 const SFGAO_NONENUMERATED = &h100000
 1001 const SFGAO_NEWCONTENT = &h200000
 1002 const SFGAO_CANMONIKER = &h400000
 1003 const SFGAO_HASSTORAGE = &h400000
 1004 const SFGAO_STREAM = &h400000
 1005 const SFGAO_STORAGEANCESTOR = &h00800000
 1006 const SFGAO_STORAGECAPMASK = &h70c50008
 1007 const SFGAO_PKEYSFGAOMASK = &h81044000
 1008 type SFGAOF as ULONG
 1009 #define STR_BIND_FORCE_FOLDER_SHORTCUT_RESOLVE wstr("Force Folder Shortcut Resolve")
 1010 #define STR_AVOID_DRIVE_RESTRICTION_POLICY wstr("Avoid Drive Restriction Policy")
 1011 #define STR_AVOID_DRIVE_RESTRICTION_POLICY wstr("Avoid Drive Restriction Policy")
 1012 #define STR_SKIP_BINDING_CLSID wstr("Skip Binding CLSID")
 1013 #define STR_PARSE_PREFER_FOLDER_BROWSING wstr("Parse Prefer Folder Browsing")
 1014 #define STR_DONT_PARSE_RELATIVE wstr("Don't Parse Relative")
 1015 #define STR_PARSE_TRANSLATE_ALIASES wstr("Parse Translate Aliases")
 1016 #define STR_PARSE_SKIP_NET_CACHE wstr("Skip Net Resource Cache")
 1017 #define STR_PARSE_SHELL_PROTOCOL_TO_FILE_OBJECTS wstr("Parse Shell Protocol To File Objects")
 1018 
 1019 #if _WIN32_WINNT >= &h0600
 1020     #define STR_TRACK_CLSID wstr("Track the CLSID")
 1021     #define STR_INTERNAL_NAVIGATE wstr("Internal Navigation")
 1022     #define STR_PARSE_PROPERTYSTORE wstr("DelegateNamedProperties")
 1023     #define STR_NO_VALIDATE_FILENAME_CHARS wstr("NoValidateFilenameChars")
 1024     #define STR_BIND_DELEGATE_CREATE_OBJECT wstr("Delegate Object Creation")
 1025     #define STR_PARSE_ALLOW_INTERNET_SHELL_FOLDERS wstr("Allow binding to Internet shell folder handlers and negate STR_PARSE_PREFER_WEB_BROWSING")
 1026     #define STR_PARSE_PREFER_WEB_BROWSING wstr("Do not bind to Internet shell folder handlers")
 1027     #define STR_PARSE_SHOW_NET_DIAGNOSTICS_UI wstr("Show network diagnostics UI")
 1028     #define STR_PARSE_DONT_REQUIRE_VALIDATED_URLS wstr("Do not require validated URLs")
 1029     #define STR_INTERNETFOLDER_PARSE_ONLY_URLMON_BINDABLE wstr("Validate URL")
 1030 #endif
 1031 
 1032 #if _WIN32_WINNT = &h0602
 1033     const BIND_INTERRUPTABLE = &hffffffff
 1034 #endif
 1035 
 1036 #if _WIN32_WINNT >= &h0601
 1037     #define STR_BIND_FOLDERS_READ_ONLY wstr("Folders As Read Only")
 1038     #define STR_BIND_FOLDER_ENUM_MODE wstr("Folder Enum Mode")
 1039 
 1040     type FOLDER_ENUM_MODE as long
 1041     enum
 1042         FEM_VIEWRESULT = 0
 1043         FEM_NAVIGATION = 1
 1044     end enum
 1045 
 1046     #define __IObjectWithFolderEnumMode_INTERFACE_DEFINED__
 1047     extern IID_IObjectWithFolderEnumMode as const GUID
 1048     type IObjectWithFolderEnumMode as IObjectWithFolderEnumMode_
 1049 
 1050     type IObjectWithFolderEnumModeVtbl
 1051         QueryInterface as function(byval This as IObjectWithFolderEnumMode ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1052         AddRef as function(byval This as IObjectWithFolderEnumMode ptr) as ULONG
 1053         Release as function(byval This as IObjectWithFolderEnumMode ptr) as ULONG
 1054         SetMode as function(byval This as IObjectWithFolderEnumMode ptr, byval feMode as FOLDER_ENUM_MODE) as HRESULT
 1055         GetMode as function(byval This as IObjectWithFolderEnumMode ptr, byval pfeMode as FOLDER_ENUM_MODE ptr) as HRESULT
 1056     end type
 1057 
 1058     type IObjectWithFolderEnumMode_
 1059         lpVtbl as IObjectWithFolderEnumModeVtbl ptr
 1060     end type
 1061 
 1062     #define IObjectWithFolderEnumMode_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1063     #define IObjectWithFolderEnumMode_AddRef(This) (This)->lpVtbl->AddRef(This)
 1064     #define IObjectWithFolderEnumMode_Release(This) (This)->lpVtbl->Release(This)
 1065     #define IObjectWithFolderEnumMode_SetMode(This, feMode) (This)->lpVtbl->SetMode(This, feMode)
 1066     #define IObjectWithFolderEnumMode_GetMode(This, pfeMode) (This)->lpVtbl->GetMode(This, pfeMode)
 1067 
 1068     declare function IObjectWithFolderEnumMode_SetMode_Proxy(byval This as IObjectWithFolderEnumMode ptr, byval feMode as FOLDER_ENUM_MODE) as HRESULT
 1069     declare sub IObjectWithFolderEnumMode_SetMode_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1070     declare function IObjectWithFolderEnumMode_GetMode_Proxy(byval This as IObjectWithFolderEnumMode ptr, byval pfeMode as FOLDER_ENUM_MODE ptr) as HRESULT
 1071     declare sub IObjectWithFolderEnumMode_GetMode_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1072 
 1073     #define STR_PARSE_WITH_EXPLICIT_PROGID wstr("ExplicitProgid")
 1074     #define STR_PARSE_WITH_EXPLICIT_ASSOCAPP wstr("ExplicitAssociationApp")
 1075     #define STR_PARSE_EXPLICIT_ASSOCIATION_SUCCESSFUL wstr("ExplicitAssociationSuccessful")
 1076     #define STR_PARSE_AND_CREATE_ITEM wstr("ParseAndCreateItem")
 1077     #define STR_PROPERTYBAG_PARAM wstr("SHBindCtxPropertyBag")
 1078     #define STR_ENUM_ITEMS_FLAGS wstr("SHCONTF")
 1079     #define __IParseAndCreateItem_INTERFACE_DEFINED__
 1080     extern IID_IParseAndCreateItem as const GUID
 1081     type IParseAndCreateItem as IParseAndCreateItem_
 1082     type IShellItem as IShellItem_
 1083 
 1084     type IParseAndCreateItemVtbl
 1085         QueryInterface as function(byval This as IParseAndCreateItem ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1086         AddRef as function(byval This as IParseAndCreateItem ptr) as ULONG
 1087         Release as function(byval This as IParseAndCreateItem ptr) as ULONG
 1088         SetItem as function(byval This as IParseAndCreateItem ptr, byval psi as IShellItem ptr) as HRESULT
 1089         GetItem as function(byval This as IParseAndCreateItem ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1090     end type
 1091 
 1092     type IParseAndCreateItem_
 1093         lpVtbl as IParseAndCreateItemVtbl ptr
 1094     end type
 1095 
 1096     #define IParseAndCreateItem_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1097     #define IParseAndCreateItem_AddRef(This) (This)->lpVtbl->AddRef(This)
 1098     #define IParseAndCreateItem_Release(This) (This)->lpVtbl->Release(This)
 1099     #define IParseAndCreateItem_SetItem(This, psi) (This)->lpVtbl->SetItem(This, psi)
 1100     #define IParseAndCreateItem_GetItem(This, riid, ppv) (This)->lpVtbl->GetItem(This, riid, ppv)
 1101 
 1102     declare function IParseAndCreateItem_SetItem_Proxy(byval This as IParseAndCreateItem ptr, byval psi as IShellItem ptr) as HRESULT
 1103     declare sub IParseAndCreateItem_SetItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1104     declare function IParseAndCreateItem_GetItem_Proxy(byval This as IParseAndCreateItem ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1105     declare sub IParseAndCreateItem_GetItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1106     #define STR_ITEM_CACHE_CONTEXT wstr("ItemCacheContext")
 1107 #endif
 1108 
 1109 #define __IShellFolder_INTERFACE_DEFINED__
 1110 extern IID_IShellFolder as const GUID
 1111 type IShellFolder as IShellFolder_
 1112 
 1113 type IShellFolderVtbl
 1114     QueryInterface as function(byval This as IShellFolder ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1115     AddRef as function(byval This as IShellFolder ptr) as ULONG
 1116     Release as function(byval This as IShellFolder ptr) as ULONG
 1117     ParseDisplayName as function(byval This as IShellFolder ptr, byval hwnd as HWND, byval pbc as IBindCtx ptr, byval pszDisplayName as LPWSTR, byval pchEaten as ULONG ptr, byval ppidl as LPITEMIDLIST ptr, byval pdwAttributes as ULONG ptr) as HRESULT
 1118     EnumObjects as function(byval This as IShellFolder ptr, byval hwnd as HWND, byval grfFlags as SHCONTF, byval ppenumIDList as IEnumIDList ptr ptr) as HRESULT
 1119     BindToObject as function(byval This as IShellFolder ptr, byval pidl as LPCITEMIDLIST, byval pbc as IBindCtx ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1120     BindToStorage as function(byval This as IShellFolder ptr, byval pidl as LPCITEMIDLIST, byval pbc as IBindCtx ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1121     CompareIDs as function(byval This as IShellFolder ptr, byval lParam as LPARAM, byval pidl1 as LPCITEMIDLIST, byval pidl2 as LPCITEMIDLIST) as HRESULT
 1122     CreateViewObject as function(byval This as IShellFolder ptr, byval hwndOwner as HWND, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1123     GetAttributesOf as function(byval This as IShellFolder ptr, byval cidl as UINT, byval apidl as LPCITEMIDLIST ptr, byval rgfInOut as SFGAOF ptr) as HRESULT
 1124     GetUIObjectOf as function(byval This as IShellFolder ptr, byval hwndOwner as HWND, byval cidl as UINT, byval apidl as LPCITEMIDLIST ptr, byval riid as const IID const ptr, byval rgfReserved as UINT ptr, byval ppv as any ptr ptr) as HRESULT
 1125     GetDisplayNameOf as function(byval This as IShellFolder ptr, byval pidl as LPCITEMIDLIST, byval uFlags as SHGDNF, byval pName as STRRET ptr) as HRESULT
 1126     SetNameOf as function(byval This as IShellFolder ptr, byval hwnd as HWND, byval pidl as LPCITEMIDLIST, byval pszName as LPCWSTR, byval uFlags as SHGDNF, byval ppidlOut as LPITEMIDLIST ptr) as HRESULT
 1127 end type
 1128 
 1129 type IShellFolder_
 1130     lpVtbl as IShellFolderVtbl ptr
 1131 end type
 1132 
 1133 #define IShellFolder_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1134 #define IShellFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
 1135 #define IShellFolder_Release(This) (This)->lpVtbl->Release(This)
 1136 #define IShellFolder_ParseDisplayName(This, hwnd, pbc, pszDisplayName, pchEaten, ppidl, pdwAttributes) (This)->lpVtbl->ParseDisplayName(This, hwnd, pbc, pszDisplayName, pchEaten, ppidl, pdwAttributes)
 1137 #define IShellFolder_EnumObjects(This, hwnd, grfFlags, ppenumIDList) (This)->lpVtbl->EnumObjects(This, hwnd, grfFlags, ppenumIDList)
 1138 #define IShellFolder_BindToObject(This, pidl, pbc, riid, ppv) (This)->lpVtbl->BindToObject(This, pidl, pbc, riid, ppv)
 1139 #define IShellFolder_BindToStorage(This, pidl, pbc, riid, ppv) (This)->lpVtbl->BindToStorage(This, pidl, pbc, riid, ppv)
 1140 #define IShellFolder_CompareIDs(This, lParam, pidl1, pidl2) (This)->lpVtbl->CompareIDs(This, lParam, pidl1, pidl2)
 1141 #define IShellFolder_CreateViewObject(This, hwndOwner, riid, ppv) (This)->lpVtbl->CreateViewObject(This, hwndOwner, riid, ppv)
 1142 #define IShellFolder_GetAttributesOf(This, cidl, apidl, rgfInOut) (This)->lpVtbl->GetAttributesOf(This, cidl, apidl, rgfInOut)
 1143 #define IShellFolder_GetUIObjectOf(This, hwndOwner, cidl, apidl, riid, rgfReserved, ppv) (This)->lpVtbl->GetUIObjectOf(This, hwndOwner, cidl, apidl, riid, rgfReserved, ppv)
 1144 #define IShellFolder_GetDisplayNameOf(This, pidl, uFlags, pName) (This)->lpVtbl->GetDisplayNameOf(This, pidl, uFlags, pName)
 1145 #define IShellFolder_SetNameOf(This, hwnd, pidl, pszName, uFlags, ppidlOut) (This)->lpVtbl->SetNameOf(This, hwnd, pidl, pszName, uFlags, ppidlOut)
 1146 
 1147 declare function IShellFolder_ParseDisplayName_Proxy(byval This as IShellFolder ptr, byval hwnd as HWND, byval pbc as IBindCtx ptr, byval pszDisplayName as LPWSTR, byval pchEaten as ULONG ptr, byval ppidl as LPITEMIDLIST ptr, byval pdwAttributes as ULONG ptr) as HRESULT
 1148 declare sub IShellFolder_ParseDisplayName_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1149 declare function IShellFolder_EnumObjects_Proxy(byval This as IShellFolder ptr, byval hwnd as HWND, byval grfFlags as SHCONTF, byval ppenumIDList as IEnumIDList ptr ptr) as HRESULT
 1150 declare sub IShellFolder_EnumObjects_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1151 declare function IShellFolder_BindToObject_Proxy(byval This as IShellFolder ptr, byval pidl as LPCITEMIDLIST, byval pbc as IBindCtx ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1152 declare sub IShellFolder_BindToObject_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1153 declare function IShellFolder_BindToStorage_Proxy(byval This as IShellFolder ptr, byval pidl as LPCITEMIDLIST, byval pbc as IBindCtx ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1154 declare sub IShellFolder_BindToStorage_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1155 declare function IShellFolder_CompareIDs_Proxy(byval This as IShellFolder ptr, byval lParam as LPARAM, byval pidl1 as LPCITEMIDLIST, byval pidl2 as LPCITEMIDLIST) as HRESULT
 1156 declare sub IShellFolder_CompareIDs_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1157 declare function IShellFolder_CreateViewObject_Proxy(byval This as IShellFolder ptr, byval hwndOwner as HWND, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1158 declare sub IShellFolder_CreateViewObject_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1159 declare function IShellFolder_GetAttributesOf_Proxy(byval This as IShellFolder ptr, byval cidl as UINT, byval apidl as LPCITEMIDLIST ptr, byval rgfInOut as SFGAOF ptr) as HRESULT
 1160 declare sub IShellFolder_GetAttributesOf_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1161 declare function IShellFolder_GetUIObjectOf_Proxy(byval This as IShellFolder ptr, byval hwndOwner as HWND, byval cidl as UINT, byval apidl as LPCITEMIDLIST ptr, byval riid as const IID const ptr, byval rgfReserved as UINT ptr, byval ppv as any ptr ptr) as HRESULT
 1162 declare sub IShellFolder_GetUIObjectOf_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1163 declare function IShellFolder_GetDisplayNameOf_Proxy(byval This as IShellFolder ptr, byval pidl as LPCITEMIDLIST, byval uFlags as SHGDNF, byval pName as STRRET ptr) as HRESULT
 1164 declare sub IShellFolder_GetDisplayNameOf_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1165 declare function IShellFolder_RemoteSetNameOf_Proxy(byval This as IShellFolder ptr, byval hwnd as HWND, byval pidl as LPCITEMIDLIST, byval pszName as LPCWSTR, byval uFlags as SHGDNF, byval ppidlOut as LPITEMIDLIST ptr) as HRESULT
 1166 declare sub IShellFolder_RemoteSetNameOf_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1167 declare function IShellFolder_SetNameOf_Proxy(byval This as IShellFolder ptr, byval hwnd as HWND, byval pidl as LPCITEMIDLIST, byval pszName as LPCWSTR, byval uFlags as SHGDNF, byval ppidlOut as LPITEMIDLIST ptr) as HRESULT
 1168 declare function IShellFolder_SetNameOf_Stub(byval This as IShellFolder ptr, byval hwnd as HWND, byval pidl as LPCITEMIDLIST, byval pszName as LPCWSTR, byval uFlags as SHGDNF, byval ppidlOut as LPITEMIDLIST ptr) as HRESULT
 1169 type LPSHELLFOLDER as IShellFolder ptr
 1170 
 1171 type EXTRASEARCH
 1172     guidSearch as GUID
 1173     wszFriendlyName as wstring * 80
 1174     wszUrl as wstring * 2084
 1175 end type
 1176 
 1177 type LPEXTRASEARCH as EXTRASEARCH ptr
 1178 #define __IEnumExtraSearch_INTERFACE_DEFINED__
 1179 extern IID_IEnumExtraSearch as const GUID
 1180 type IEnumExtraSearch as IEnumExtraSearch_
 1181 
 1182 type IEnumExtraSearchVtbl
 1183     QueryInterface as function(byval This as IEnumExtraSearch ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1184     AddRef as function(byval This as IEnumExtraSearch ptr) as ULONG
 1185     Release as function(byval This as IEnumExtraSearch ptr) as ULONG
 1186     Next as function(byval This as IEnumExtraSearch ptr, byval celt as ULONG, byval rgelt as EXTRASEARCH ptr, byval pceltFetched as ULONG ptr) as HRESULT
 1187     Skip as function(byval This as IEnumExtraSearch ptr, byval celt as ULONG) as HRESULT
 1188     Reset as function(byval This as IEnumExtraSearch ptr) as HRESULT
 1189     Clone as function(byval This as IEnumExtraSearch ptr, byval ppenum as IEnumExtraSearch ptr ptr) as HRESULT
 1190 end type
 1191 
 1192 type IEnumExtraSearch_
 1193     lpVtbl as IEnumExtraSearchVtbl ptr
 1194 end type
 1195 
 1196 #define IEnumExtraSearch_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1197 #define IEnumExtraSearch_AddRef(This) (This)->lpVtbl->AddRef(This)
 1198 #define IEnumExtraSearch_Release(This) (This)->lpVtbl->Release(This)
 1199 #define IEnumExtraSearch_Next(This, celt, rgelt, pceltFetched) (This)->lpVtbl->Next(This, celt, rgelt, pceltFetched)
 1200 #define IEnumExtraSearch_Skip(This, celt) (This)->lpVtbl->Skip(This, celt)
 1201 #define IEnumExtraSearch_Reset(This) (This)->lpVtbl->Reset(This)
 1202 #define IEnumExtraSearch_Clone(This, ppenum) (This)->lpVtbl->Clone(This, ppenum)
 1203 
 1204 declare function IEnumExtraSearch_Next_Proxy(byval This as IEnumExtraSearch ptr, byval celt as ULONG, byval rgelt as EXTRASEARCH ptr, byval pceltFetched as ULONG ptr) as HRESULT
 1205 declare sub IEnumExtraSearch_Next_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1206 declare function IEnumExtraSearch_Skip_Proxy(byval This as IEnumExtraSearch ptr, byval celt as ULONG) as HRESULT
 1207 declare sub IEnumExtraSearch_Skip_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1208 declare function IEnumExtraSearch_Reset_Proxy(byval This as IEnumExtraSearch ptr) as HRESULT
 1209 declare sub IEnumExtraSearch_Reset_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1210 declare function IEnumExtraSearch_Clone_Proxy(byval This as IEnumExtraSearch ptr, byval ppenum as IEnumExtraSearch ptr ptr) as HRESULT
 1211 declare sub IEnumExtraSearch_Clone_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1212 type LPENUMEXTRASEARCH as IEnumExtraSearch ptr
 1213 #define __IShellFolder2_INTERFACE_DEFINED__
 1214 extern IID_IShellFolder2 as const GUID
 1215 type IShellFolder2 as IShellFolder2_
 1216 
 1217 type IShellFolder2Vtbl
 1218     QueryInterface as function(byval This as IShellFolder2 ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1219     AddRef as function(byval This as IShellFolder2 ptr) as ULONG
 1220     Release as function(byval This as IShellFolder2 ptr) as ULONG
 1221     ParseDisplayName as function(byval This as IShellFolder2 ptr, byval hwnd as HWND, byval pbc as IBindCtx ptr, byval pszDisplayName as LPWSTR, byval pchEaten as ULONG ptr, byval ppidl as LPITEMIDLIST ptr, byval pdwAttributes as ULONG ptr) as HRESULT
 1222     EnumObjects as function(byval This as IShellFolder2 ptr, byval hwnd as HWND, byval grfFlags as SHCONTF, byval ppenumIDList as IEnumIDList ptr ptr) as HRESULT
 1223     BindToObject as function(byval This as IShellFolder2 ptr, byval pidl as LPCITEMIDLIST, byval pbc as IBindCtx ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1224     BindToStorage as function(byval This as IShellFolder2 ptr, byval pidl as LPCITEMIDLIST, byval pbc as IBindCtx ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1225     CompareIDs as function(byval This as IShellFolder2 ptr, byval lParam as LPARAM, byval pidl1 as LPCITEMIDLIST, byval pidl2 as LPCITEMIDLIST) as HRESULT
 1226     CreateViewObject as function(byval This as IShellFolder2 ptr, byval hwndOwner as HWND, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1227     GetAttributesOf as function(byval This as IShellFolder2 ptr, byval cidl as UINT, byval apidl as LPCITEMIDLIST ptr, byval rgfInOut as SFGAOF ptr) as HRESULT
 1228     GetUIObjectOf as function(byval This as IShellFolder2 ptr, byval hwndOwner as HWND, byval cidl as UINT, byval apidl as LPCITEMIDLIST ptr, byval riid as const IID const ptr, byval rgfReserved as UINT ptr, byval ppv as any ptr ptr) as HRESULT
 1229     GetDisplayNameOf as function(byval This as IShellFolder2 ptr, byval pidl as LPCITEMIDLIST, byval uFlags as SHGDNF, byval pName as STRRET ptr) as HRESULT
 1230     SetNameOf as function(byval This as IShellFolder2 ptr, byval hwnd as HWND, byval pidl as LPCITEMIDLIST, byval pszName as LPCWSTR, byval uFlags as SHGDNF, byval ppidlOut as LPITEMIDLIST ptr) as HRESULT
 1231     GetDefaultSearchGUID as function(byval This as IShellFolder2 ptr, byval pguid as GUID ptr) as HRESULT
 1232     EnumSearches as function(byval This as IShellFolder2 ptr, byval ppenum as IEnumExtraSearch ptr ptr) as HRESULT
 1233     GetDefaultColumn as function(byval This as IShellFolder2 ptr, byval dwRes as DWORD, byval pSort as ULONG ptr, byval pDisplay as ULONG ptr) as HRESULT
 1234     GetDefaultColumnState as function(byval This as IShellFolder2 ptr, byval iColumn as UINT, byval pcsFlags as SHCOLSTATEF ptr) as HRESULT
 1235     GetDetailsEx as function(byval This as IShellFolder2 ptr, byval pidl as LPCITEMIDLIST, byval pscid as const SHCOLUMNID ptr, byval pv as VARIANT ptr) as HRESULT
 1236     GetDetailsOf as function(byval This as IShellFolder2 ptr, byval pidl as LPCITEMIDLIST, byval iColumn as UINT, byval psd as SHELLDETAILS ptr) as HRESULT
 1237     MapColumnToSCID as function(byval This as IShellFolder2 ptr, byval iColumn as UINT, byval pscid as SHCOLUMNID ptr) as HRESULT
 1238 end type
 1239 
 1240 type IShellFolder2_
 1241     lpVtbl as IShellFolder2Vtbl ptr
 1242 end type
 1243 
 1244 #define IShellFolder2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1245 #define IShellFolder2_AddRef(This) (This)->lpVtbl->AddRef(This)
 1246 #define IShellFolder2_Release(This) (This)->lpVtbl->Release(This)
 1247 #define IShellFolder2_ParseDisplayName(This, hwnd, pbc, pszDisplayName, pchEaten, ppidl, pdwAttributes) (This)->lpVtbl->ParseDisplayName(This, hwnd, pbc, pszDisplayName, pchEaten, ppidl, pdwAttributes)
 1248 #define IShellFolder2_EnumObjects(This, hwnd, grfFlags, ppenumIDList) (This)->lpVtbl->EnumObjects(This, hwnd, grfFlags, ppenumIDList)
 1249 #define IShellFolder2_BindToObject(This, pidl, pbc, riid, ppv) (This)->lpVtbl->BindToObject(This, pidl, pbc, riid, ppv)
 1250 #define IShellFolder2_BindToStorage(This, pidl, pbc, riid, ppv) (This)->lpVtbl->BindToStorage(This, pidl, pbc, riid, ppv)
 1251 #define IShellFolder2_CompareIDs(This, lParam, pidl1, pidl2) (This)->lpVtbl->CompareIDs(This, lParam, pidl1, pidl2)
 1252 #define IShellFolder2_CreateViewObject(This, hwndOwner, riid, ppv) (This)->lpVtbl->CreateViewObject(This, hwndOwner, riid, ppv)
 1253 #define IShellFolder2_GetAttributesOf(This, cidl, apidl, rgfInOut) (This)->lpVtbl->GetAttributesOf(This, cidl, apidl, rgfInOut)
 1254 #define IShellFolder2_GetUIObjectOf(This, hwndOwner, cidl, apidl, riid, rgfReserved, ppv) (This)->lpVtbl->GetUIObjectOf(This, hwndOwner, cidl, apidl, riid, rgfReserved, ppv)
 1255 #define IShellFolder2_GetDisplayNameOf(This, pidl, uFlags, pName) (This)->lpVtbl->GetDisplayNameOf(This, pidl, uFlags, pName)
 1256 #define IShellFolder2_SetNameOf(This, hwnd, pidl, pszName, uFlags, ppidlOut) (This)->lpVtbl->SetNameOf(This, hwnd, pidl, pszName, uFlags, ppidlOut)
 1257 #define IShellFolder2_GetDefaultSearchGUID(This, pguid) (This)->lpVtbl->GetDefaultSearchGUID(This, pguid)
 1258 #define IShellFolder2_EnumSearches(This, ppenum) (This)->lpVtbl->EnumSearches(This, ppenum)
 1259 #define IShellFolder2_GetDefaultColumn(This, dwRes, pSort, pDisplay) (This)->lpVtbl->GetDefaultColumn(This, dwRes, pSort, pDisplay)
 1260 #define IShellFolder2_GetDefaultColumnState(This, iColumn, pcsFlags) (This)->lpVtbl->GetDefaultColumnState(This, iColumn, pcsFlags)
 1261 #define IShellFolder2_GetDetailsEx(This, pidl, pscid, pv) (This)->lpVtbl->GetDetailsEx(This, pidl, pscid, pv)
 1262 #define IShellFolder2_GetDetailsOf(This, pidl, iColumn, psd) (This)->lpVtbl->GetDetailsOf(This, pidl, iColumn, psd)
 1263 #define IShellFolder2_MapColumnToSCID(This, iColumn, pscid) (This)->lpVtbl->MapColumnToSCID(This, iColumn, pscid)
 1264 
 1265 declare function IShellFolder2_GetDefaultSearchGUID_Proxy(byval This as IShellFolder2 ptr, byval pguid as GUID ptr) as HRESULT
 1266 declare sub IShellFolder2_GetDefaultSearchGUID_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1267 declare function IShellFolder2_EnumSearches_Proxy(byval This as IShellFolder2 ptr, byval ppenum as IEnumExtraSearch ptr ptr) as HRESULT
 1268 declare sub IShellFolder2_EnumSearches_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1269 declare function IShellFolder2_GetDefaultColumn_Proxy(byval This as IShellFolder2 ptr, byval dwRes as DWORD, byval pSort as ULONG ptr, byval pDisplay as ULONG ptr) as HRESULT
 1270 declare sub IShellFolder2_GetDefaultColumn_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1271 declare function IShellFolder2_GetDefaultColumnState_Proxy(byval This as IShellFolder2 ptr, byval iColumn as UINT, byval pcsFlags as SHCOLSTATEF ptr) as HRESULT
 1272 declare sub IShellFolder2_GetDefaultColumnState_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1273 declare function IShellFolder2_GetDetailsEx_Proxy(byval This as IShellFolder2 ptr, byval pidl as LPCITEMIDLIST, byval pscid as const SHCOLUMNID ptr, byval pv as VARIANT ptr) as HRESULT
 1274 declare sub IShellFolder2_GetDetailsEx_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1275 declare function IShellFolder2_GetDetailsOf_Proxy(byval This as IShellFolder2 ptr, byval pidl as LPCITEMIDLIST, byval iColumn as UINT, byval psd as SHELLDETAILS ptr) as HRESULT
 1276 declare sub IShellFolder2_GetDetailsOf_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1277 declare function IShellFolder2_MapColumnToSCID_Proxy(byval This as IShellFolder2 ptr, byval iColumn as UINT, byval pscid as SHCOLUMNID ptr) as HRESULT
 1278 declare sub IShellFolder2_MapColumnToSCID_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1279 type LPVIEWSETTINGS as zstring ptr
 1280 
 1281 type FOLDERFLAGS as long
 1282 enum
 1283     FWF_NONE = &h0
 1284     FWF_AUTOARRANGE = &h1
 1285     FWF_ABBREVIATEDNAMES = &h2
 1286     FWF_SNAPTOGRID = &h4
 1287     FWF_OWNERDATA = &h8
 1288     FWF_BESTFITWINDOW = &h10
 1289     FWF_DESKTOP = &h20
 1290     FWF_SINGLESEL = &h40
 1291     FWF_NOSUBFOLDERS = &h80
 1292     FWF_TRANSPARENT = &h100
 1293     FWF_NOCLIENTEDGE = &h200
 1294     FWF_NOSCROLL = &h400
 1295     FWF_ALIGNLEFT = &h800
 1296     FWF_NOICONS = &h1000
 1297     FWF_SHOWSELALWAYS = &h2000
 1298     FWF_NOVISIBLE = &h4000
 1299     FWF_SINGLECLICKACTIVATE = &h8000
 1300     FWF_NOWEBVIEW = &h10000
 1301     FWF_HIDEFILENAMES = &h20000
 1302     FWF_CHECKSELECT = &h40000
 1303     FWF_NOENUMREFRESH = &h80000
 1304     FWF_NOGROUPING = &h100000
 1305     FWF_FULLROWSELECT = &h200000
 1306     FWF_NOFILTERS = &h400000
 1307     FWF_NOCOLUMNHEADER = &h800000
 1308     FWF_NOHEADERINALLVIEWS = &h1000000
 1309     FWF_EXTENDEDTILES = &h2000000
 1310     FWF_TRICHECKSELECT = &h4000000
 1311     FWF_AUTOCHECKSELECT = &h8000000
 1312     FWF_NOBROWSERVIEWSTATE = &h10000000
 1313     FWF_SUBSETGROUPS = &h20000000
 1314     FWF_USESEARCHFOLDER = &h40000000
 1315     FWF_ALLOWRTLREADING = &h80000000
 1316 end enum
 1317 
 1318 type FOLDERVIEWMODE as long
 1319 enum
 1320     FVM_AUTO = -1
 1321     FVM_FIRST = 1
 1322     FVM_ICON = 1
 1323     FVM_SMALLICON = 2
 1324     FVM_LIST = 3
 1325     FVM_DETAILS = 4
 1326     FVM_THUMBNAIL = 5
 1327     FVM_TILE = 6
 1328     FVM_THUMBSTRIP = 7
 1329     FVM_CONTENT = 8
 1330     FVM_LAST = 8
 1331 end enum
 1332 
 1333 #if _WIN32_WINNT >= &h0600
 1334     type FOLDERLOGICALVIEWMODE as long
 1335     enum
 1336         FLVM_UNSPECIFIED = -1
 1337         FLVM_FIRST = 1
 1338         FLVM_DETAILS = 1
 1339         FLVM_TILES = 2
 1340         FLVM_ICONS = 3
 1341         FLVM_LIST = 4
 1342         FLVM_CONTENT = 5
 1343         FLVM_LAST = 5
 1344     end enum
 1345 #endif
 1346 
 1347 type FOLDERSETTINGS
 1348     ViewMode as UINT
 1349     fFlags as UINT
 1350 end type
 1351 
 1352 type LPFOLDERSETTINGS as FOLDERSETTINGS ptr
 1353 type LPCFOLDERSETTINGS as const FOLDERSETTINGS ptr
 1354 type PFOLDERSETTINGS as FOLDERSETTINGS ptr
 1355 #define __IFolderViewOptions_INTERFACE_DEFINED__
 1356 
 1357 type FOLDERVIEWOPTIONS as long
 1358 enum
 1359     FVO_DEFAULT = &h0
 1360     FVO_VISTALAYOUT = &h1
 1361     FVO_CUSTOMPOSITION = &h2
 1362     FVO_CUSTOMORDERING = &h4
 1363     FVO_SUPPORTHYPERLINKS = &h8
 1364     FVO_NOANIMATIONS = &h10
 1365     FVO_NOSCROLLTIPS = &h20
 1366 end enum
 1367 
 1368 extern IID_IFolderViewOptions as const GUID
 1369 type IFolderViewOptions as IFolderViewOptions_
 1370 
 1371 type IFolderViewOptionsVtbl
 1372     QueryInterface as function(byval This as IFolderViewOptions ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1373     AddRef as function(byval This as IFolderViewOptions ptr) as ULONG
 1374     Release as function(byval This as IFolderViewOptions ptr) as ULONG
 1375     SetFolderViewOptions as function(byval This as IFolderViewOptions ptr, byval fvoMask as FOLDERVIEWOPTIONS, byval fvoFlags as FOLDERVIEWOPTIONS) as HRESULT
 1376     GetFolderViewOptions as function(byval This as IFolderViewOptions ptr, byval pfvoFlags as FOLDERVIEWOPTIONS ptr) as HRESULT
 1377 end type
 1378 
 1379 type IFolderViewOptions_
 1380     lpVtbl as IFolderViewOptionsVtbl ptr
 1381 end type
 1382 
 1383 #define IFolderViewOptions_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1384 #define IFolderViewOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
 1385 #define IFolderViewOptions_Release(This) (This)->lpVtbl->Release(This)
 1386 #define IFolderViewOptions_SetFolderViewOptions(This, fvoMask, fvoFlags) (This)->lpVtbl->SetFolderViewOptions(This, fvoMask, fvoFlags)
 1387 #define IFolderViewOptions_GetFolderViewOptions(This, pfvoFlags) (This)->lpVtbl->GetFolderViewOptions(This, pfvoFlags)
 1388 
 1389 declare function IFolderViewOptions_SetFolderViewOptions_Proxy(byval This as IFolderViewOptions ptr, byval fvoMask as FOLDERVIEWOPTIONS, byval fvoFlags as FOLDERVIEWOPTIONS) as HRESULT
 1390 declare sub IFolderViewOptions_SetFolderViewOptions_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1391 declare function IFolderViewOptions_GetFolderViewOptions_Proxy(byval This as IFolderViewOptions ptr, byval pfvoFlags as FOLDERVIEWOPTIONS ptr) as HRESULT
 1392 declare sub IFolderViewOptions_GetFolderViewOptions_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1393 
 1394 type _SVSIF as long
 1395 enum
 1396     SVSI_DESELECT = &h0
 1397     SVSI_SELECT = &h1
 1398     SVSI_EDIT = &h3
 1399     SVSI_DESELECTOTHERS = &h4
 1400     SVSI_ENSUREVISIBLE = &h8
 1401     SVSI_FOCUSED = &h10
 1402     SVSI_TRANSLATEPT = &h20
 1403     SVSI_SELECTIONMARK = &h40
 1404     SVSI_POSITIONITEM = &h80
 1405     SVSI_CHECK = &h100
 1406     SVSI_CHECK2 = &h200
 1407     SVSI_KEYBOARDSELECT = &h401
 1408     SVSI_NOTAKEFOCUS = &h40000000
 1409 end enum
 1410 
 1411 const SVSI_NOSTATECHANGE = cast(UINT, &h80000000)
 1412 type SVSIF as UINT
 1413 
 1414 type _SVGIO as long
 1415 enum
 1416     SVGIO_BACKGROUND = &h0
 1417     SVGIO_SELECTION = &h1
 1418     SVGIO_ALLVIEW = &h2
 1419     SVGIO_CHECKED = &h3
 1420     SVGIO_TYPE_MASK = &hf
 1421     SVGIO_FLAG_VIEWORDER = &h80000000
 1422 end enum
 1423 
 1424 type SVGIO as long
 1425 
 1426 type SVUIA_STATUS as long
 1427 enum
 1428     SVUIA_DEACTIVATE = 0
 1429     SVUIA_ACTIVATE_NOFOCUS = 1
 1430     SVUIA_ACTIVATE_FOCUS = 2
 1431     SVUIA_INPLACEACTIVATE = 3
 1432 end enum
 1433 
 1434 type LPFNSVADDPROPSHEETPAGE as LPFNADDPROPSHEETPAGE
 1435 #define __IShellView_INTERFACE_DEFINED__
 1436 extern IID_IShellView as const GUID
 1437 type IShellView as IShellView_
 1438 type IShellBrowser as IShellBrowser_
 1439 
 1440 type IShellViewVtbl
 1441     QueryInterface as function(byval This as IShellView ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1442     AddRef as function(byval This as IShellView ptr) as ULONG
 1443     Release as function(byval This as IShellView ptr) as ULONG
 1444     GetWindow as function(byval This as IShellView ptr, byval phwnd as HWND ptr) as HRESULT
 1445     ContextSensitiveHelp as function(byval This as IShellView ptr, byval fEnterMode as WINBOOL) as HRESULT
 1446     TranslateAccelerator as function(byval This as IShellView ptr, byval pmsg as MSG ptr) as HRESULT
 1447     EnableModeless as function(byval This as IShellView ptr, byval fEnable as WINBOOL) as HRESULT
 1448     UIActivate as function(byval This as IShellView ptr, byval uState as UINT) as HRESULT
 1449     Refresh as function(byval This as IShellView ptr) as HRESULT
 1450     CreateViewWindow as function(byval This as IShellView ptr, byval psvPrevious as IShellView ptr, byval pfs as LPCFOLDERSETTINGS, byval psb as IShellBrowser ptr, byval prcView as RECT ptr, byval phWnd as HWND ptr) as HRESULT
 1451     DestroyViewWindow as function(byval This as IShellView ptr) as HRESULT
 1452     GetCurrentInfo as function(byval This as IShellView ptr, byval pfs as LPFOLDERSETTINGS) as HRESULT
 1453     AddPropertySheetPages as function(byval This as IShellView ptr, byval dwReserved as DWORD, byval pfn as LPFNSVADDPROPSHEETPAGE, byval lparam as LPARAM) as HRESULT
 1454     SaveViewState as function(byval This as IShellView ptr) as HRESULT
 1455     SelectItem as function(byval This as IShellView ptr, byval pidlItem as LPCITEMIDLIST, byval uFlags as SVSIF) as HRESULT
 1456     GetItemObject as function(byval This as IShellView ptr, byval uItem as UINT, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1457 end type
 1458 
 1459 type IShellView_
 1460     lpVtbl as IShellViewVtbl ptr
 1461 end type
 1462 
 1463 #define IShellView_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1464 #define IShellView_AddRef(This) (This)->lpVtbl->AddRef(This)
 1465 #define IShellView_Release(This) (This)->lpVtbl->Release(This)
 1466 #define IShellView_GetWindow(This, phwnd) (This)->lpVtbl->GetWindow(This, phwnd)
 1467 #define IShellView_ContextSensitiveHelp(This, fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This, fEnterMode)
 1468 #define IShellView_TranslateAccelerator(This, pmsg) (This)->lpVtbl->TranslateAccelerator(This, pmsg)
 1469 #define IShellView_EnableModeless(This, fEnable) (This)->lpVtbl->EnableModeless(This, fEnable)
 1470 #define IShellView_UIActivate(This, uState) (This)->lpVtbl->UIActivate(This, uState)
 1471 #define IShellView_Refresh(This) (This)->lpVtbl->Refresh(This)
 1472 #define IShellView_CreateViewWindow(This, psvPrevious, pfs, psb, prcView, phWnd) (This)->lpVtbl->CreateViewWindow(This, psvPrevious, pfs, psb, prcView, phWnd)
 1473 #define IShellView_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
 1474 #define IShellView_GetCurrentInfo(This, pfs) (This)->lpVtbl->GetCurrentInfo(This, pfs)
 1475 #define IShellView_AddPropertySheetPages(This, dwReserved, pfn, lparam) (This)->lpVtbl->AddPropertySheetPages(This, dwReserved, pfn, lparam)
 1476 #define IShellView_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
 1477 #define IShellView_SelectItem(This, pidlItem, uFlags) (This)->lpVtbl->SelectItem(This, pidlItem, uFlags)
 1478 #define IShellView_GetItemObject(This, uItem, riid, ppv) (This)->lpVtbl->GetItemObject(This, uItem, riid, ppv)
 1479 
 1480 declare function IShellView_TranslateAccelerator_Proxy(byval This as IShellView ptr, byval pmsg as MSG ptr) as HRESULT
 1481 declare sub IShellView_TranslateAccelerator_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1482 declare function IShellView_EnableModeless_Proxy(byval This as IShellView ptr, byval fEnable as WINBOOL) as HRESULT
 1483 declare sub IShellView_EnableModeless_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1484 declare function IShellView_UIActivate_Proxy(byval This as IShellView ptr, byval uState as UINT) as HRESULT
 1485 declare sub IShellView_UIActivate_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1486 declare function IShellView_Refresh_Proxy(byval This as IShellView ptr) as HRESULT
 1487 declare sub IShellView_Refresh_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1488 declare function IShellView_CreateViewWindow_Proxy(byval This as IShellView ptr, byval psvPrevious as IShellView ptr, byval pfs as LPCFOLDERSETTINGS, byval psb as IShellBrowser ptr, byval prcView as RECT ptr, byval phWnd as HWND ptr) as HRESULT
 1489 declare sub IShellView_CreateViewWindow_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1490 declare function IShellView_DestroyViewWindow_Proxy(byval This as IShellView ptr) as HRESULT
 1491 declare sub IShellView_DestroyViewWindow_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1492 declare function IShellView_GetCurrentInfo_Proxy(byval This as IShellView ptr, byval pfs as LPFOLDERSETTINGS) as HRESULT
 1493 declare sub IShellView_GetCurrentInfo_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1494 declare function IShellView_SaveViewState_Proxy(byval This as IShellView ptr) as HRESULT
 1495 declare sub IShellView_SaveViewState_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1496 declare function IShellView_SelectItem_Proxy(byval This as IShellView ptr, byval pidlItem as LPCITEMIDLIST, byval uFlags as SVSIF) as HRESULT
 1497 declare sub IShellView_SelectItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1498 declare function IShellView_GetItemObject_Proxy(byval This as IShellView ptr, byval uItem as UINT, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1499 declare sub IShellView_GetItemObject_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1500 type LPSHELLVIEW as IShellView ptr
 1501 #define __IShellView2_INTERFACE_DEFINED__
 1502 type SHELLVIEWID as GUID
 1503 const SV2GV_CURRENTVIEW = cast(UINT, -1)
 1504 const SV2GV_DEFAULTVIEW = cast(UINT, -2)
 1505 
 1506 type _SV2CVW2_PARAMS
 1507     cbSize as DWORD
 1508     psvPrev as IShellView ptr
 1509     pfs as LPCFOLDERSETTINGS
 1510     psbOwner as IShellBrowser ptr
 1511     prcView as RECT ptr
 1512     pvid as const SHELLVIEWID ptr
 1513     hwndView as HWND
 1514 end type
 1515 
 1516 type SV2CVW2_PARAMS as _SV2CVW2_PARAMS
 1517 type LPSV2CVW2_PARAMS as _SV2CVW2_PARAMS ptr
 1518 extern IID_IShellView2 as const GUID
 1519 type IShellView2 as IShellView2_
 1520 
 1521 type IShellView2Vtbl
 1522     QueryInterface as function(byval This as IShellView2 ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1523     AddRef as function(byval This as IShellView2 ptr) as ULONG
 1524     Release as function(byval This as IShellView2 ptr) as ULONG
 1525     GetWindow as function(byval This as IShellView2 ptr, byval phwnd as HWND ptr) as HRESULT
 1526     ContextSensitiveHelp as function(byval This as IShellView2 ptr, byval fEnterMode as WINBOOL) as HRESULT
 1527     TranslateAccelerator as function(byval This as IShellView2 ptr, byval pmsg as MSG ptr) as HRESULT
 1528     EnableModeless as function(byval This as IShellView2 ptr, byval fEnable as WINBOOL) as HRESULT
 1529     UIActivate as function(byval This as IShellView2 ptr, byval uState as UINT) as HRESULT
 1530     Refresh as function(byval This as IShellView2 ptr) as HRESULT
 1531     CreateViewWindow as function(byval This as IShellView2 ptr, byval psvPrevious as IShellView ptr, byval pfs as LPCFOLDERSETTINGS, byval psb as IShellBrowser ptr, byval prcView as RECT ptr, byval phWnd as HWND ptr) as HRESULT
 1532     DestroyViewWindow as function(byval This as IShellView2 ptr) as HRESULT
 1533     GetCurrentInfo as function(byval This as IShellView2 ptr, byval pfs as LPFOLDERSETTINGS) as HRESULT
 1534     AddPropertySheetPages as function(byval This as IShellView2 ptr, byval dwReserved as DWORD, byval pfn as LPFNSVADDPROPSHEETPAGE, byval lparam as LPARAM) as HRESULT
 1535     SaveViewState as function(byval This as IShellView2 ptr) as HRESULT
 1536     SelectItem as function(byval This as IShellView2 ptr, byval pidlItem as LPCITEMIDLIST, byval uFlags as SVSIF) as HRESULT
 1537     GetItemObject as function(byval This as IShellView2 ptr, byval uItem as UINT, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1538     GetView as function(byval This as IShellView2 ptr, byval pvid as SHELLVIEWID ptr, byval uView as ULONG) as HRESULT
 1539     CreateViewWindow2 as function(byval This as IShellView2 ptr, byval lpParams as LPSV2CVW2_PARAMS) as HRESULT
 1540     HandleRename as function(byval This as IShellView2 ptr, byval pidlNew as LPCITEMIDLIST) as HRESULT
 1541     SelectAndPositionItem as function(byval This as IShellView2 ptr, byval pidlItem as LPCITEMIDLIST, byval uFlags as UINT, byval ppt as POINT ptr) as HRESULT
 1542 end type
 1543 
 1544 type IShellView2_
 1545     lpVtbl as IShellView2Vtbl ptr
 1546 end type
 1547 
 1548 #define IShellView2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1549 #define IShellView2_AddRef(This) (This)->lpVtbl->AddRef(This)
 1550 #define IShellView2_Release(This) (This)->lpVtbl->Release(This)
 1551 #define IShellView2_GetWindow(This, phwnd) (This)->lpVtbl->GetWindow(This, phwnd)
 1552 #define IShellView2_ContextSensitiveHelp(This, fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This, fEnterMode)
 1553 #define IShellView2_TranslateAccelerator(This, pmsg) (This)->lpVtbl->TranslateAccelerator(This, pmsg)
 1554 #define IShellView2_EnableModeless(This, fEnable) (This)->lpVtbl->EnableModeless(This, fEnable)
 1555 #define IShellView2_UIActivate(This, uState) (This)->lpVtbl->UIActivate(This, uState)
 1556 #define IShellView2_Refresh(This) (This)->lpVtbl->Refresh(This)
 1557 #define IShellView2_CreateViewWindow(This, psvPrevious, pfs, psb, prcView, phWnd) (This)->lpVtbl->CreateViewWindow(This, psvPrevious, pfs, psb, prcView, phWnd)
 1558 #define IShellView2_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
 1559 #define IShellView2_GetCurrentInfo(This, pfs) (This)->lpVtbl->GetCurrentInfo(This, pfs)
 1560 #define IShellView2_AddPropertySheetPages(This, dwReserved, pfn, lparam) (This)->lpVtbl->AddPropertySheetPages(This, dwReserved, pfn, lparam)
 1561 #define IShellView2_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
 1562 #define IShellView2_SelectItem(This, pidlItem, uFlags) (This)->lpVtbl->SelectItem(This, pidlItem, uFlags)
 1563 #define IShellView2_GetItemObject(This, uItem, riid, ppv) (This)->lpVtbl->GetItemObject(This, uItem, riid, ppv)
 1564 #define IShellView2_GetView(This, pvid, uView) (This)->lpVtbl->GetView(This, pvid, uView)
 1565 #define IShellView2_CreateViewWindow2(This, lpParams) (This)->lpVtbl->CreateViewWindow2(This, lpParams)
 1566 #define IShellView2_HandleRename(This, pidlNew) (This)->lpVtbl->HandleRename(This, pidlNew)
 1567 #define IShellView2_SelectAndPositionItem(This, pidlItem, uFlags, ppt) (This)->lpVtbl->SelectAndPositionItem(This, pidlItem, uFlags, ppt)
 1568 
 1569 declare function IShellView2_GetView_Proxy(byval This as IShellView2 ptr, byval pvid as SHELLVIEWID ptr, byval uView as ULONG) as HRESULT
 1570 declare sub IShellView2_GetView_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1571 declare function IShellView2_CreateViewWindow2_Proxy(byval This as IShellView2 ptr, byval lpParams as LPSV2CVW2_PARAMS) as HRESULT
 1572 declare sub IShellView2_CreateViewWindow2_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1573 declare function IShellView2_HandleRename_Proxy(byval This as IShellView2 ptr, byval pidlNew as LPCITEMIDLIST) as HRESULT
 1574 declare sub IShellView2_HandleRename_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1575 declare function IShellView2_SelectAndPositionItem_Proxy(byval This as IShellView2 ptr, byval pidlItem as LPCITEMIDLIST, byval uFlags as UINT, byval ppt as POINT ptr) as HRESULT
 1576 declare sub IShellView2_SelectAndPositionItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1577 
 1578 #if _WIN32_WINNT >= &h0600
 1579     #define __IShellView3_INTERFACE_DEFINED__
 1580 
 1581     type _SV3CVW3_FLAGS as long
 1582     enum
 1583         SV3CVW3_DEFAULT = &h0
 1584         SV3CVW3_NONINTERACTIVE = &h1
 1585         SV3CVW3_FORCEVIEWMODE = &h2
 1586         SV3CVW3_FORCEFOLDERFLAGS = &h4
 1587     end enum
 1588 
 1589     type SV3CVW3_FLAGS as DWORD
 1590     extern IID_IShellView3 as const GUID
 1591     type IShellView3 as IShellView3_
 1592 
 1593     type IShellView3Vtbl
 1594         QueryInterface as function(byval This as IShellView3 ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1595         AddRef as function(byval This as IShellView3 ptr) as ULONG
 1596         Release as function(byval This as IShellView3 ptr) as ULONG
 1597         GetWindow as function(byval This as IShellView3 ptr, byval phwnd as HWND ptr) as HRESULT
 1598         ContextSensitiveHelp as function(byval This as IShellView3 ptr, byval fEnterMode as WINBOOL) as HRESULT
 1599         TranslateAccelerator as function(byval This as IShellView3 ptr, byval pmsg as MSG ptr) as HRESULT
 1600         EnableModeless as function(byval This as IShellView3 ptr, byval fEnable as WINBOOL) as HRESULT
 1601         UIActivate as function(byval This as IShellView3 ptr, byval uState as UINT) as HRESULT
 1602         Refresh as function(byval This as IShellView3 ptr) as HRESULT
 1603         CreateViewWindow as function(byval This as IShellView3 ptr, byval psvPrevious as IShellView ptr, byval pfs as LPCFOLDERSETTINGS, byval psb as IShellBrowser ptr, byval prcView as RECT ptr, byval phWnd as HWND ptr) as HRESULT
 1604         DestroyViewWindow as function(byval This as IShellView3 ptr) as HRESULT
 1605         GetCurrentInfo as function(byval This as IShellView3 ptr, byval pfs as LPFOLDERSETTINGS) as HRESULT
 1606         AddPropertySheetPages as function(byval This as IShellView3 ptr, byval dwReserved as DWORD, byval pfn as LPFNSVADDPROPSHEETPAGE, byval lparam as LPARAM) as HRESULT
 1607         SaveViewState as function(byval This as IShellView3 ptr) as HRESULT
 1608         SelectItem as function(byval This as IShellView3 ptr, byval pidlItem as LPCITEMIDLIST, byval uFlags as SVSIF) as HRESULT
 1609         GetItemObject as function(byval This as IShellView3 ptr, byval uItem as UINT, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1610         GetView as function(byval This as IShellView3 ptr, byval pvid as SHELLVIEWID ptr, byval uView as ULONG) as HRESULT
 1611         CreateViewWindow2 as function(byval This as IShellView3 ptr, byval lpParams as LPSV2CVW2_PARAMS) as HRESULT
 1612         HandleRename as function(byval This as IShellView3 ptr, byval pidlNew as LPCITEMIDLIST) as HRESULT
 1613         SelectAndPositionItem as function(byval This as IShellView3 ptr, byval pidlItem as LPCITEMIDLIST, byval uFlags as UINT, byval ppt as POINT ptr) as HRESULT
 1614         CreateViewWindow3 as function(byval This as IShellView3 ptr, byval psbOwner as IShellBrowser ptr, byval psvPrev as IShellView ptr, byval dwViewFlags as SV3CVW3_FLAGS, byval dwMask as FOLDERFLAGS, byval dwFlags as FOLDERFLAGS, byval fvMode as FOLDERVIEWMODE, byval pvid as const SHELLVIEWID ptr, byval prcView as const RECT ptr, byval phwndView as HWND ptr) as HRESULT
 1615     end type
 1616 
 1617     type IShellView3_
 1618         lpVtbl as IShellView3Vtbl ptr
 1619     end type
 1620 
 1621     #define IShellView3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1622     #define IShellView3_AddRef(This) (This)->lpVtbl->AddRef(This)
 1623     #define IShellView3_Release(This) (This)->lpVtbl->Release(This)
 1624     #define IShellView3_GetWindow(This, phwnd) (This)->lpVtbl->GetWindow(This, phwnd)
 1625     #define IShellView3_ContextSensitiveHelp(This, fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This, fEnterMode)
 1626     #define IShellView3_TranslateAccelerator(This, pmsg) (This)->lpVtbl->TranslateAccelerator(This, pmsg)
 1627     #define IShellView3_EnableModeless(This, fEnable) (This)->lpVtbl->EnableModeless(This, fEnable)
 1628     #define IShellView3_UIActivate(This, uState) (This)->lpVtbl->UIActivate(This, uState)
 1629     #define IShellView3_Refresh(This) (This)->lpVtbl->Refresh(This)
 1630     #define IShellView3_CreateViewWindow(This, psvPrevious, pfs, psb, prcView, phWnd) (This)->lpVtbl->CreateViewWindow(This, psvPrevious, pfs, psb, prcView, phWnd)
 1631     #define IShellView3_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
 1632     #define IShellView3_GetCurrentInfo(This, pfs) (This)->lpVtbl->GetCurrentInfo(This, pfs)
 1633     #define IShellView3_AddPropertySheetPages(This, dwReserved, pfn, lparam) (This)->lpVtbl->AddPropertySheetPages(This, dwReserved, pfn, lparam)
 1634     #define IShellView3_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
 1635     #define IShellView3_SelectItem(This, pidlItem, uFlags) (This)->lpVtbl->SelectItem(This, pidlItem, uFlags)
 1636     #define IShellView3_GetItemObject(This, uItem, riid, ppv) (This)->lpVtbl->GetItemObject(This, uItem, riid, ppv)
 1637     #define IShellView3_GetView(This, pvid, uView) (This)->lpVtbl->GetView(This, pvid, uView)
 1638     #define IShellView3_CreateViewWindow2(This, lpParams) (This)->lpVtbl->CreateViewWindow2(This, lpParams)
 1639     #define IShellView3_HandleRename(This, pidlNew) (This)->lpVtbl->HandleRename(This, pidlNew)
 1640     #define IShellView3_SelectAndPositionItem(This, pidlItem, uFlags, ppt) (This)->lpVtbl->SelectAndPositionItem(This, pidlItem, uFlags, ppt)
 1641     #define IShellView3_CreateViewWindow3(This, psbOwner, psvPrev, dwViewFlags, dwMask, dwFlags, fvMode, pvid, prcView, phwndView) (This)->lpVtbl->CreateViewWindow3(This, psbOwner, psvPrev, dwViewFlags, dwMask, dwFlags, fvMode, pvid, prcView, phwndView)
 1642     declare function IShellView3_CreateViewWindow3_Proxy(byval This as IShellView3 ptr, byval psbOwner as IShellBrowser ptr, byval psvPrev as IShellView ptr, byval dwViewFlags as SV3CVW3_FLAGS, byval dwMask as FOLDERFLAGS, byval dwFlags as FOLDERFLAGS, byval fvMode as FOLDERVIEWMODE, byval pvid as const SHELLVIEWID ptr, byval prcView as const RECT ptr, byval phwndView as HWND ptr) as HRESULT
 1643     declare sub IShellView3_CreateViewWindow3_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1644 #endif
 1645 
 1646 #define __IFolderView_INTERFACE_DEFINED__
 1647 extern IID_IFolderView as const GUID
 1648 type IFolderView as IFolderView_
 1649 
 1650 type IFolderViewVtbl
 1651     QueryInterface as function(byval This as IFolderView ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1652     AddRef as function(byval This as IFolderView ptr) as ULONG
 1653     Release as function(byval This as IFolderView ptr) as ULONG
 1654     GetCurrentViewMode as function(byval This as IFolderView ptr, byval pViewMode as UINT ptr) as HRESULT
 1655     SetCurrentViewMode as function(byval This as IFolderView ptr, byval ViewMode as UINT) as HRESULT
 1656     GetFolder as function(byval This as IFolderView ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1657     Item as function(byval This as IFolderView ptr, byval iItemIndex as long, byval ppidl as LPITEMIDLIST ptr) as HRESULT
 1658     ItemCount as function(byval This as IFolderView ptr, byval uFlags as UINT, byval pcItems as long ptr) as HRESULT
 1659     Items as function(byval This as IFolderView ptr, byval uFlags as UINT, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1660     GetSelectionMarkedItem as function(byval This as IFolderView ptr, byval piItem as long ptr) as HRESULT
 1661     GetFocusedItem as function(byval This as IFolderView ptr, byval piItem as long ptr) as HRESULT
 1662     GetItemPosition as function(byval This as IFolderView ptr, byval pidl as LPCITEMIDLIST, byval ppt as POINT ptr) as HRESULT
 1663     GetSpacing as function(byval This as IFolderView ptr, byval ppt as POINT ptr) as HRESULT
 1664     GetDefaultSpacing as function(byval This as IFolderView ptr, byval ppt as POINT ptr) as HRESULT
 1665     GetAutoArrange as function(byval This as IFolderView ptr) as HRESULT
 1666     SelectItem as function(byval This as IFolderView ptr, byval iItem as long, byval dwFlags as DWORD) as HRESULT
 1667     SelectAndPositionItems as function(byval This as IFolderView ptr, byval cidl as UINT, byval apidl as LPCITEMIDLIST ptr, byval apt as POINT ptr, byval dwFlags as DWORD) as HRESULT
 1668 end type
 1669 
 1670 type IFolderView_
 1671     lpVtbl as IFolderViewVtbl ptr
 1672 end type
 1673 
 1674 #define IFolderView_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1675 #define IFolderView_AddRef(This) (This)->lpVtbl->AddRef(This)
 1676 #define IFolderView_Release(This) (This)->lpVtbl->Release(This)
 1677 #define IFolderView_GetCurrentViewMode(This, pViewMode) (This)->lpVtbl->GetCurrentViewMode(This, pViewMode)
 1678 #define IFolderView_SetCurrentViewMode(This, ViewMode) (This)->lpVtbl->SetCurrentViewMode(This, ViewMode)
 1679 #define IFolderView_GetFolder(This, riid, ppv) (This)->lpVtbl->GetFolder(This, riid, ppv)
 1680 #define IFolderView_Item(This, iItemIndex, ppidl) (This)->lpVtbl->Item(This, iItemIndex, ppidl)
 1681 #define IFolderView_ItemCount(This, uFlags, pcItems) (This)->lpVtbl->ItemCount(This, uFlags, pcItems)
 1682 #define IFolderView_Items(This, uFlags, riid, ppv) (This)->lpVtbl->Items(This, uFlags, riid, ppv)
 1683 #define IFolderView_GetSelectionMarkedItem(This, piItem) (This)->lpVtbl->GetSelectionMarkedItem(This, piItem)
 1684 #define IFolderView_GetFocusedItem(This, piItem) (This)->lpVtbl->GetFocusedItem(This, piItem)
 1685 #define IFolderView_GetItemPosition(This, pidl, ppt) (This)->lpVtbl->GetItemPosition(This, pidl, ppt)
 1686 #define IFolderView_GetSpacing(This, ppt) (This)->lpVtbl->GetSpacing(This, ppt)
 1687 #define IFolderView_GetDefaultSpacing(This, ppt) (This)->lpVtbl->GetDefaultSpacing(This, ppt)
 1688 #define IFolderView_GetAutoArrange(This) (This)->lpVtbl->GetAutoArrange(This)
 1689 #define IFolderView_SelectItem(This, iItem, dwFlags) (This)->lpVtbl->SelectItem(This, iItem, dwFlags)
 1690 #define IFolderView_SelectAndPositionItems(This, cidl, apidl, apt, dwFlags) (This)->lpVtbl->SelectAndPositionItems(This, cidl, apidl, apt, dwFlags)
 1691 
 1692 declare function IFolderView_GetCurrentViewMode_Proxy(byval This as IFolderView ptr, byval pViewMode as UINT ptr) as HRESULT
 1693 declare sub IFolderView_GetCurrentViewMode_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1694 declare function IFolderView_SetCurrentViewMode_Proxy(byval This as IFolderView ptr, byval ViewMode as UINT) as HRESULT
 1695 declare sub IFolderView_SetCurrentViewMode_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1696 declare function IFolderView_GetFolder_Proxy(byval This as IFolderView ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1697 declare sub IFolderView_GetFolder_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1698 declare function IFolderView_Item_Proxy(byval This as IFolderView ptr, byval iItemIndex as long, byval ppidl as LPITEMIDLIST ptr) as HRESULT
 1699 declare sub IFolderView_Item_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1700 declare function IFolderView_ItemCount_Proxy(byval This as IFolderView ptr, byval uFlags as UINT, byval pcItems as long ptr) as HRESULT
 1701 declare sub IFolderView_ItemCount_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1702 declare function IFolderView_Items_Proxy(byval This as IFolderView ptr, byval uFlags as UINT, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1703 declare sub IFolderView_Items_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1704 declare function IFolderView_GetSelectionMarkedItem_Proxy(byval This as IFolderView ptr, byval piItem as long ptr) as HRESULT
 1705 declare sub IFolderView_GetSelectionMarkedItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1706 declare function IFolderView_GetFocusedItem_Proxy(byval This as IFolderView ptr, byval piItem as long ptr) as HRESULT
 1707 declare sub IFolderView_GetFocusedItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1708 declare function IFolderView_GetItemPosition_Proxy(byval This as IFolderView ptr, byval pidl as LPCITEMIDLIST, byval ppt as POINT ptr) as HRESULT
 1709 declare sub IFolderView_GetItemPosition_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1710 declare function IFolderView_GetSpacing_Proxy(byval This as IFolderView ptr, byval ppt as POINT ptr) as HRESULT
 1711 declare sub IFolderView_GetSpacing_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1712 declare function IFolderView_GetDefaultSpacing_Proxy(byval This as IFolderView ptr, byval ppt as POINT ptr) as HRESULT
 1713 declare sub IFolderView_GetDefaultSpacing_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1714 declare function IFolderView_GetAutoArrange_Proxy(byval This as IFolderView ptr) as HRESULT
 1715 declare sub IFolderView_GetAutoArrange_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1716 declare function IFolderView_SelectItem_Proxy(byval This as IFolderView ptr, byval iItem as long, byval dwFlags as DWORD) as HRESULT
 1717 declare sub IFolderView_SelectItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1718 declare function IFolderView_SelectAndPositionItems_Proxy(byval This as IFolderView ptr, byval cidl as UINT, byval apidl as LPCITEMIDLIST ptr, byval apt as POINT ptr, byval dwFlags as DWORD) as HRESULT
 1719 declare sub IFolderView_SelectAndPositionItems_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1720 extern SID_SFolderView alias "IID_IFolderView" as const GUID
 1721 
 1722 #if _WIN32_WINNT >= &h0601
 1723     #define __ISearchBoxInfo_INTERFACE_DEFINED__
 1724     extern IID_ISearchBoxInfo as const GUID
 1725     type ISearchBoxInfo as ISearchBoxInfo_
 1726 
 1727     type ISearchBoxInfoVtbl
 1728         QueryInterface as function(byval This as ISearchBoxInfo ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1729         AddRef as function(byval This as ISearchBoxInfo ptr) as ULONG
 1730         Release as function(byval This as ISearchBoxInfo ptr) as ULONG
 1731         GetCondition as function(byval This as ISearchBoxInfo ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1732         GetText as function(byval This as ISearchBoxInfo ptr, byval ppsz as LPWSTR ptr) as HRESULT
 1733     end type
 1734 
 1735     type ISearchBoxInfo_
 1736         lpVtbl as ISearchBoxInfoVtbl ptr
 1737     end type
 1738 
 1739     #define ISearchBoxInfo_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1740     #define ISearchBoxInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
 1741     #define ISearchBoxInfo_Release(This) (This)->lpVtbl->Release(This)
 1742     #define ISearchBoxInfo_GetCondition(This, riid, ppv) (This)->lpVtbl->GetCondition(This, riid, ppv)
 1743     #define ISearchBoxInfo_GetText(This, ppsz) (This)->lpVtbl->GetText(This, ppsz)
 1744 
 1745     declare function ISearchBoxInfo_GetCondition_Proxy(byval This as ISearchBoxInfo ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1746     declare sub ISearchBoxInfo_GetCondition_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1747     declare function ISearchBoxInfo_GetText_Proxy(byval This as ISearchBoxInfo ptr, byval ppsz as LPWSTR ptr) as HRESULT
 1748     declare sub ISearchBoxInfo_GetText_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1749 #endif
 1750 
 1751 #if _WIN32_WINNT >= &h0600
 1752     type tagSORTDIRECTION as long
 1753     enum
 1754         SORT_DESCENDING = -1
 1755         SORT_ASCENDING = 1
 1756     end enum
 1757 
 1758     type SORTDIRECTION as long
 1759 
 1760     type SORTCOLUMN
 1761         propkey as PROPERTYKEY
 1762         direction as SORTDIRECTION
 1763     end type
 1764 
 1765     type FVTEXTTYPE as long
 1766     enum
 1767         FVST_EMPTYTEXT = 0
 1768     end enum
 1769 
 1770     type DEPRECATED_HRESULT as HRESULT
 1771     #define __IFolderView2_INTERFACE_DEFINED__
 1772     extern IID_IFolderView2 as const GUID
 1773     type IFolderView2 as IFolderView2_
 1774     type IShellItemArray as IShellItemArray_
 1775 
 1776     type IFolderView2Vtbl
 1777         QueryInterface as function(byval This as IFolderView2 ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1778         AddRef as function(byval This as IFolderView2 ptr) as ULONG
 1779         Release as function(byval This as IFolderView2 ptr) as ULONG
 1780         GetCurrentViewMode as function(byval This as IFolderView2 ptr, byval pViewMode as UINT ptr) as HRESULT
 1781         SetCurrentViewMode as function(byval This as IFolderView2 ptr, byval ViewMode as UINT) as HRESULT
 1782         GetFolder as function(byval This as IFolderView2 ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1783         Item as function(byval This as IFolderView2 ptr, byval iItemIndex as long, byval ppidl as LPITEMIDLIST ptr) as HRESULT
 1784         ItemCount as function(byval This as IFolderView2 ptr, byval uFlags as UINT, byval pcItems as long ptr) as HRESULT
 1785         Items as function(byval This as IFolderView2 ptr, byval uFlags as UINT, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1786         GetSelectionMarkedItem as function(byval This as IFolderView2 ptr, byval piItem as long ptr) as HRESULT
 1787         GetFocusedItem as function(byval This as IFolderView2 ptr, byval piItem as long ptr) as HRESULT
 1788         GetItemPosition as function(byval This as IFolderView2 ptr, byval pidl as LPCITEMIDLIST, byval ppt as POINT ptr) as HRESULT
 1789         GetSpacing as function(byval This as IFolderView2 ptr, byval ppt as POINT ptr) as HRESULT
 1790         GetDefaultSpacing as function(byval This as IFolderView2 ptr, byval ppt as POINT ptr) as HRESULT
 1791         GetAutoArrange as function(byval This as IFolderView2 ptr) as HRESULT
 1792         SelectItem as function(byval This as IFolderView2 ptr, byval iItem as long, byval dwFlags as DWORD) as HRESULT
 1793         SelectAndPositionItems as function(byval This as IFolderView2 ptr, byval cidl as UINT, byval apidl as LPCITEMIDLIST ptr, byval apt as POINT ptr, byval dwFlags as DWORD) as HRESULT
 1794         SetGroupBy as function(byval This as IFolderView2 ptr, byval key as const PROPERTYKEY const ptr, byval fAscending as WINBOOL) as HRESULT
 1795         GetGroupBy as function(byval This as IFolderView2 ptr, byval pkey as PROPERTYKEY ptr, byval pfAscending as WINBOOL ptr) as HRESULT
 1796         SetViewProperty as function(byval This as IFolderView2 ptr, byval pidl as LPCITEMIDLIST, byval propkey as const PROPERTYKEY const ptr, byval propvar as const PROPVARIANT const ptr) as HRESULT
 1797         GetViewProperty as function(byval This as IFolderView2 ptr, byval pidl as LPCITEMIDLIST, byval propkey as const PROPERTYKEY const ptr, byval ppropvar as PROPVARIANT ptr) as HRESULT
 1798         SetTileViewProperties as function(byval This as IFolderView2 ptr, byval pidl as LPCITEMIDLIST, byval pszPropList as LPCWSTR) as HRESULT
 1799         SetExtendedTileViewProperties as function(byval This as IFolderView2 ptr, byval pidl as LPCITEMIDLIST, byval pszPropList as LPCWSTR) as HRESULT
 1800         SetText as function(byval This as IFolderView2 ptr, byval iType as FVTEXTTYPE, byval pwszText as LPCWSTR) as HRESULT
 1801         SetCurrentFolderFlags as function(byval This as IFolderView2 ptr, byval dwMask as DWORD, byval dwFlags as DWORD) as HRESULT
 1802         GetCurrentFolderFlags as function(byval This as IFolderView2 ptr, byval pdwFlags as DWORD ptr) as HRESULT
 1803         GetSortColumnCount as function(byval This as IFolderView2 ptr, byval pcColumns as long ptr) as HRESULT
 1804         SetSortColumns as function(byval This as IFolderView2 ptr, byval rgSortColumns as const SORTCOLUMN ptr, byval cColumns as long) as HRESULT
 1805         GetSortColumns as function(byval This as IFolderView2 ptr, byval rgSortColumns as SORTCOLUMN ptr, byval cColumns as long) as HRESULT
 1806         GetItem as function(byval This as IFolderView2 ptr, byval iItem as long, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1807         GetVisibleItem as function(byval This as IFolderView2 ptr, byval iStart as long, byval fPrevious as WINBOOL, byval piItem as long ptr) as HRESULT
 1808         GetSelectedItem as function(byval This as IFolderView2 ptr, byval iStart as long, byval piItem as long ptr) as HRESULT
 1809         GetSelection as function(byval This as IFolderView2 ptr, byval fNoneImpliesFolder as WINBOOL, byval ppsia as IShellItemArray ptr ptr) as HRESULT
 1810         GetSelectionState as function(byval This as IFolderView2 ptr, byval pidl as LPCITEMIDLIST, byval pdwFlags as DWORD ptr) as HRESULT
 1811         InvokeVerbOnSelection as function(byval This as IFolderView2 ptr, byval pszVerb as LPCSTR) as HRESULT
 1812         SetViewModeAndIconSize as function(byval This as IFolderView2 ptr, byval uViewMode as FOLDERVIEWMODE, byval iImageSize as long) as HRESULT
 1813         GetViewModeAndIconSize as function(byval This as IFolderView2 ptr, byval puViewMode as FOLDERVIEWMODE ptr, byval piImageSize as long ptr) as HRESULT
 1814         SetGroupSubsetCount as function(byval This as IFolderView2 ptr, byval cVisibleRows as UINT) as HRESULT
 1815         GetGroupSubsetCount as function(byval This as IFolderView2 ptr, byval pcVisibleRows as UINT ptr) as HRESULT
 1816         SetRedraw as function(byval This as IFolderView2 ptr, byval fRedrawOn as WINBOOL) as HRESULT
 1817         IsMoveInSameFolder as function(byval This as IFolderView2 ptr) as HRESULT
 1818         DoRename as function(byval This as IFolderView2 ptr) as HRESULT
 1819     end type
 1820 
 1821     type IFolderView2_
 1822         lpVtbl as IFolderView2Vtbl ptr
 1823     end type
 1824 
 1825     #define IFolderView2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1826     #define IFolderView2_AddRef(This) (This)->lpVtbl->AddRef(This)
 1827     #define IFolderView2_Release(This) (This)->lpVtbl->Release(This)
 1828     #define IFolderView2_GetCurrentViewMode(This, pViewMode) (This)->lpVtbl->GetCurrentViewMode(This, pViewMode)
 1829     #define IFolderView2_SetCurrentViewMode(This, ViewMode) (This)->lpVtbl->SetCurrentViewMode(This, ViewMode)
 1830     #define IFolderView2_GetFolder(This, riid, ppv) (This)->lpVtbl->GetFolder(This, riid, ppv)
 1831     #define IFolderView2_Item(This, iItemIndex, ppidl) (This)->lpVtbl->Item(This, iItemIndex, ppidl)
 1832     #define IFolderView2_ItemCount(This, uFlags, pcItems) (This)->lpVtbl->ItemCount(This, uFlags, pcItems)
 1833     #define IFolderView2_Items(This, uFlags, riid, ppv) (This)->lpVtbl->Items(This, uFlags, riid, ppv)
 1834     #define IFolderView2_GetSelectionMarkedItem(This, piItem) (This)->lpVtbl->GetSelectionMarkedItem(This, piItem)
 1835     #define IFolderView2_GetFocusedItem(This, piItem) (This)->lpVtbl->GetFocusedItem(This, piItem)
 1836     #define IFolderView2_GetItemPosition(This, pidl, ppt) (This)->lpVtbl->GetItemPosition(This, pidl, ppt)
 1837     #define IFolderView2_GetSpacing(This, ppt) (This)->lpVtbl->GetSpacing(This, ppt)
 1838     #define IFolderView2_GetDefaultSpacing(This, ppt) (This)->lpVtbl->GetDefaultSpacing(This, ppt)
 1839     #define IFolderView2_GetAutoArrange(This) (This)->lpVtbl->GetAutoArrange(This)
 1840     #define IFolderView2_SelectItem(This, iItem, dwFlags) (This)->lpVtbl->SelectItem(This, iItem, dwFlags)
 1841     #define IFolderView2_SelectAndPositionItems(This, cidl, apidl, apt, dwFlags) (This)->lpVtbl->SelectAndPositionItems(This, cidl, apidl, apt, dwFlags)
 1842     #define IFolderView2_SetGroupBy(This, key, fAscending) (This)->lpVtbl->SetGroupBy(This, key, fAscending)
 1843     #define IFolderView2_GetGroupBy(This, pkey, pfAscending) (This)->lpVtbl->GetGroupBy(This, pkey, pfAscending)
 1844     #define IFolderView2_SetViewProperty(This, pidl, propkey, propvar) (This)->lpVtbl->SetViewProperty(This, pidl, propkey, propvar)
 1845     #define IFolderView2_GetViewProperty(This, pidl, propkey, ppropvar) (This)->lpVtbl->GetViewProperty(This, pidl, propkey, ppropvar)
 1846     #define IFolderView2_SetTileViewProperties(This, pidl, pszPropList) (This)->lpVtbl->SetTileViewProperties(This, pidl, pszPropList)
 1847     #define IFolderView2_SetExtendedTileViewProperties(This, pidl, pszPropList) (This)->lpVtbl->SetExtendedTileViewProperties(This, pidl, pszPropList)
 1848     #define IFolderView2_SetText(This, iType, pwszText) (This)->lpVtbl->SetText(This, iType, pwszText)
 1849     #define IFolderView2_SetCurrentFolderFlags(This, dwMask, dwFlags) (This)->lpVtbl->SetCurrentFolderFlags(This, dwMask, dwFlags)
 1850     #define IFolderView2_GetCurrentFolderFlags(This, pdwFlags) (This)->lpVtbl->GetCurrentFolderFlags(This, pdwFlags)
 1851     #define IFolderView2_GetSortColumnCount(This, pcColumns) (This)->lpVtbl->GetSortColumnCount(This, pcColumns)
 1852     #define IFolderView2_SetSortColumns(This, rgSortColumns, cColumns) (This)->lpVtbl->SetSortColumns(This, rgSortColumns, cColumns)
 1853     #define IFolderView2_GetSortColumns(This, rgSortColumns, cColumns) (This)->lpVtbl->GetSortColumns(This, rgSortColumns, cColumns)
 1854     #define IFolderView2_GetItem(This, iItem, riid, ppv) (This)->lpVtbl->GetItem(This, iItem, riid, ppv)
 1855     #define IFolderView2_GetVisibleItem(This, iStart, fPrevious, piItem) (This)->lpVtbl->GetVisibleItem(This, iStart, fPrevious, piItem)
 1856     #define IFolderView2_GetSelectedItem(This, iStart, piItem) (This)->lpVtbl->GetSelectedItem(This, iStart, piItem)
 1857     #define IFolderView2_GetSelection(This, fNoneImpliesFolder, ppsia) (This)->lpVtbl->GetSelection(This, fNoneImpliesFolder, ppsia)
 1858     #define IFolderView2_GetSelectionState(This, pidl, pdwFlags) (This)->lpVtbl->GetSelectionState(This, pidl, pdwFlags)
 1859     #define IFolderView2_InvokeVerbOnSelection(This, pszVerb) (This)->lpVtbl->InvokeVerbOnSelection(This, pszVerb)
 1860     #define IFolderView2_SetViewModeAndIconSize(This, uViewMode, iImageSize) (This)->lpVtbl->SetViewModeAndIconSize(This, uViewMode, iImageSize)
 1861     #define IFolderView2_GetViewModeAndIconSize(This, puViewMode, piImageSize) (This)->lpVtbl->GetViewModeAndIconSize(This, puViewMode, piImageSize)
 1862     #define IFolderView2_SetGroupSubsetCount(This, cVisibleRows) (This)->lpVtbl->SetGroupSubsetCount(This, cVisibleRows)
 1863     #define IFolderView2_GetGroupSubsetCount(This, pcVisibleRows) (This)->lpVtbl->GetGroupSubsetCount(This, pcVisibleRows)
 1864     #define IFolderView2_SetRedraw(This, fRedrawOn) (This)->lpVtbl->SetRedraw(This, fRedrawOn)
 1865     #define IFolderView2_IsMoveInSameFolder(This) (This)->lpVtbl->IsMoveInSameFolder(This)
 1866     #define IFolderView2_DoRename(This) (This)->lpVtbl->DoRename(This)
 1867 
 1868     declare function IFolderView2_SetGroupBy_Proxy(byval This as IFolderView2 ptr, byval key as const PROPERTYKEY const ptr, byval fAscending as WINBOOL) as HRESULT
 1869     declare sub IFolderView2_SetGroupBy_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1870     declare function IFolderView2_RemoteGetGroupBy_Proxy(byval This as IFolderView2 ptr, byval pkey as PROPERTYKEY ptr, byval pfAscending as WINBOOL ptr) as HRESULT
 1871     declare sub IFolderView2_RemoteGetGroupBy_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1872     declare function IFolderView2_SetViewProperty_Proxy(byval This as IFolderView2 ptr, byval pidl as LPCITEMIDLIST, byval propkey as const PROPERTYKEY const ptr, byval propvar as const PROPVARIANT const ptr) as HRESULT
 1873     declare sub IFolderView2_SetViewProperty_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1874     declare function IFolderView2_GetViewProperty_Proxy(byval This as IFolderView2 ptr, byval pidl as LPCITEMIDLIST, byval propkey as const PROPERTYKEY const ptr, byval ppropvar as PROPVARIANT ptr) as HRESULT
 1875     declare sub IFolderView2_GetViewProperty_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1876     declare function IFolderView2_SetTileViewProperties_Proxy(byval This as IFolderView2 ptr, byval pidl as LPCITEMIDLIST, byval pszPropList as LPCWSTR) as HRESULT
 1877     declare sub IFolderView2_SetTileViewProperties_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1878     declare function IFolderView2_SetExtendedTileViewProperties_Proxy(byval This as IFolderView2 ptr, byval pidl as LPCITEMIDLIST, byval pszPropList as LPCWSTR) as HRESULT
 1879     declare sub IFolderView2_SetExtendedTileViewProperties_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1880     declare function IFolderView2_SetText_Proxy(byval This as IFolderView2 ptr, byval iType as FVTEXTTYPE, byval pwszText as LPCWSTR) as HRESULT
 1881     declare sub IFolderView2_SetText_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1882     declare function IFolderView2_SetCurrentFolderFlags_Proxy(byval This as IFolderView2 ptr, byval dwMask as DWORD, byval dwFlags as DWORD) as HRESULT
 1883     declare sub IFolderView2_SetCurrentFolderFlags_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1884     declare function IFolderView2_GetCurrentFolderFlags_Proxy(byval This as IFolderView2 ptr, byval pdwFlags as DWORD ptr) as HRESULT
 1885     declare sub IFolderView2_GetCurrentFolderFlags_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1886     declare function IFolderView2_GetSortColumnCount_Proxy(byval This as IFolderView2 ptr, byval pcColumns as long ptr) as HRESULT
 1887     declare sub IFolderView2_GetSortColumnCount_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1888     declare function IFolderView2_SetSortColumns_Proxy(byval This as IFolderView2 ptr, byval rgSortColumns as const SORTCOLUMN ptr, byval cColumns as long) as HRESULT
 1889     declare sub IFolderView2_SetSortColumns_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1890     declare function IFolderView2_GetSortColumns_Proxy(byval This as IFolderView2 ptr, byval rgSortColumns as SORTCOLUMN ptr, byval cColumns as long) as HRESULT
 1891     declare sub IFolderView2_GetSortColumns_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1892     declare function IFolderView2_GetItem_Proxy(byval This as IFolderView2 ptr, byval iItem as long, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1893     declare sub IFolderView2_GetItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1894     declare function IFolderView2_GetVisibleItem_Proxy(byval This as IFolderView2 ptr, byval iStart as long, byval fPrevious as WINBOOL, byval piItem as long ptr) as HRESULT
 1895     declare sub IFolderView2_GetVisibleItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1896     declare function IFolderView2_GetSelectedItem_Proxy(byval This as IFolderView2 ptr, byval iStart as long, byval piItem as long ptr) as HRESULT
 1897     declare sub IFolderView2_GetSelectedItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1898     declare function IFolderView2_GetSelection_Proxy(byval This as IFolderView2 ptr, byval fNoneImpliesFolder as WINBOOL, byval ppsia as IShellItemArray ptr ptr) as HRESULT
 1899     declare sub IFolderView2_GetSelection_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1900     declare function IFolderView2_GetSelectionState_Proxy(byval This as IFolderView2 ptr, byval pidl as LPCITEMIDLIST, byval pdwFlags as DWORD ptr) as HRESULT
 1901     declare sub IFolderView2_GetSelectionState_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1902     declare function IFolderView2_InvokeVerbOnSelection_Proxy(byval This as IFolderView2 ptr, byval pszVerb as LPCSTR) as HRESULT
 1903     declare sub IFolderView2_InvokeVerbOnSelection_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1904     declare function IFolderView2_SetViewModeAndIconSize_Proxy(byval This as IFolderView2 ptr, byval uViewMode as FOLDERVIEWMODE, byval iImageSize as long) as HRESULT
 1905     declare sub IFolderView2_SetViewModeAndIconSize_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1906     declare function IFolderView2_GetViewModeAndIconSize_Proxy(byval This as IFolderView2 ptr, byval puViewMode as FOLDERVIEWMODE ptr, byval piImageSize as long ptr) as HRESULT
 1907     declare sub IFolderView2_GetViewModeAndIconSize_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1908     declare function IFolderView2_SetGroupSubsetCount_Proxy(byval This as IFolderView2 ptr, byval cVisibleRows as UINT) as HRESULT
 1909     declare sub IFolderView2_SetGroupSubsetCount_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1910     declare function IFolderView2_GetGroupSubsetCount_Proxy(byval This as IFolderView2 ptr, byval pcVisibleRows as UINT ptr) as HRESULT
 1911     declare sub IFolderView2_GetGroupSubsetCount_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1912     declare function IFolderView2_SetRedraw_Proxy(byval This as IFolderView2 ptr, byval fRedrawOn as WINBOOL) as HRESULT
 1913     declare sub IFolderView2_SetRedraw_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1914     declare function IFolderView2_IsMoveInSameFolder_Proxy(byval This as IFolderView2 ptr) as HRESULT
 1915     declare sub IFolderView2_IsMoveInSameFolder_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1916     declare function IFolderView2_DoRename_Proxy(byval This as IFolderView2 ptr) as HRESULT
 1917     declare sub IFolderView2_DoRename_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1918     declare function IFolderView2_GetGroupBy_Proxy(byval This as IFolderView2 ptr, byval pkey as PROPERTYKEY ptr, byval pfAscending as WINBOOL ptr) as HRESULT
 1919     declare function IFolderView2_GetGroupBy_Stub(byval This as IFolderView2 ptr, byval pkey as PROPERTYKEY ptr, byval pfAscending as WINBOOL ptr) as HRESULT
 1920     #define __IFolderViewSettings_INTERFACE_DEFINED__
 1921     extern IID_IFolderViewSettings as const GUID
 1922     type IFolderViewSettings as IFolderViewSettings_
 1923 
 1924     type IFolderViewSettingsVtbl
 1925         QueryInterface as function(byval This as IFolderViewSettings ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1926         AddRef as function(byval This as IFolderViewSettings ptr) as ULONG
 1927         Release as function(byval This as IFolderViewSettings ptr) as ULONG
 1928         GetColumnPropertyList as function(byval This as IFolderViewSettings ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1929         GetGroupByProperty as function(byval This as IFolderViewSettings ptr, byval pkey as PROPERTYKEY ptr, byval pfGroupAscending as WINBOOL ptr) as HRESULT
 1930         GetViewMode as function(byval This as IFolderViewSettings ptr, byval plvm as FOLDERLOGICALVIEWMODE ptr) as HRESULT
 1931         GetIconSize as function(byval This as IFolderViewSettings ptr, byval puIconSize as UINT ptr) as HRESULT
 1932         GetFolderFlags as function(byval This as IFolderViewSettings ptr, byval pfolderMask as FOLDERFLAGS ptr, byval pfolderFlags as FOLDERFLAGS ptr) as HRESULT
 1933         GetSortColumns as function(byval This as IFolderViewSettings ptr, byval rgSortColumns as SORTCOLUMN ptr, byval cColumnsIn as UINT, byval pcColumnsOut as UINT ptr) as HRESULT
 1934         GetGroupSubsetCount as function(byval This as IFolderViewSettings ptr, byval pcVisibleRows as UINT ptr) as HRESULT
 1935     end type
 1936 
 1937     type IFolderViewSettings_
 1938         lpVtbl as IFolderViewSettingsVtbl ptr
 1939     end type
 1940 
 1941     #define IFolderViewSettings_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1942     #define IFolderViewSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
 1943     #define IFolderViewSettings_Release(This) (This)->lpVtbl->Release(This)
 1944     #define IFolderViewSettings_GetColumnPropertyList(This, riid, ppv) (This)->lpVtbl->GetColumnPropertyList(This, riid, ppv)
 1945     #define IFolderViewSettings_GetGroupByProperty(This, pkey, pfGroupAscending) (This)->lpVtbl->GetGroupByProperty(This, pkey, pfGroupAscending)
 1946     #define IFolderViewSettings_GetViewMode(This, plvm) (This)->lpVtbl->GetViewMode(This, plvm)
 1947     #define IFolderViewSettings_GetIconSize(This, puIconSize) (This)->lpVtbl->GetIconSize(This, puIconSize)
 1948     #define IFolderViewSettings_GetFolderFlags(This, pfolderMask, pfolderFlags) (This)->lpVtbl->GetFolderFlags(This, pfolderMask, pfolderFlags)
 1949     #define IFolderViewSettings_GetSortColumns(This, rgSortColumns, cColumnsIn, pcColumnsOut) (This)->lpVtbl->GetSortColumns(This, rgSortColumns, cColumnsIn, pcColumnsOut)
 1950     #define IFolderViewSettings_GetGroupSubsetCount(This, pcVisibleRows) (This)->lpVtbl->GetGroupSubsetCount(This, pcVisibleRows)
 1951 
 1952     declare function IFolderViewSettings_GetColumnPropertyList_Proxy(byval This as IFolderViewSettings ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 1953     declare sub IFolderViewSettings_GetColumnPropertyList_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1954     declare function IFolderViewSettings_GetGroupByProperty_Proxy(byval This as IFolderViewSettings ptr, byval pkey as PROPERTYKEY ptr, byval pfGroupAscending as WINBOOL ptr) as HRESULT
 1955     declare sub IFolderViewSettings_GetGroupByProperty_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1956     declare function IFolderViewSettings_GetViewMode_Proxy(byval This as IFolderViewSettings ptr, byval plvm as FOLDERLOGICALVIEWMODE ptr) as HRESULT
 1957     declare sub IFolderViewSettings_GetViewMode_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1958     declare function IFolderViewSettings_GetIconSize_Proxy(byval This as IFolderViewSettings ptr, byval puIconSize as UINT ptr) as HRESULT
 1959     declare sub IFolderViewSettings_GetIconSize_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1960     declare function IFolderViewSettings_GetFolderFlags_Proxy(byval This as IFolderViewSettings ptr, byval pfolderMask as FOLDERFLAGS ptr, byval pfolderFlags as FOLDERFLAGS ptr) as HRESULT
 1961     declare sub IFolderViewSettings_GetFolderFlags_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1962     declare function IFolderViewSettings_GetSortColumns_Proxy(byval This as IFolderViewSettings ptr, byval rgSortColumns as SORTCOLUMN ptr, byval cColumnsIn as UINT, byval pcColumnsOut as UINT ptr) as HRESULT
 1963     declare sub IFolderViewSettings_GetSortColumns_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1964     declare function IFolderViewSettings_GetGroupSubsetCount_Proxy(byval This as IFolderViewSettings ptr, byval pcVisibleRows as UINT ptr) as HRESULT
 1965     declare sub IFolderViewSettings_GetGroupSubsetCount_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1966     #define __IPreviewHandlerVisuals_INTERFACE_DEFINED__
 1967     extern IID_IPreviewHandlerVisuals as const GUID
 1968     type IPreviewHandlerVisuals as IPreviewHandlerVisuals_
 1969 
 1970     type IPreviewHandlerVisualsVtbl
 1971         QueryInterface as function(byval This as IPreviewHandlerVisuals ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 1972         AddRef as function(byval This as IPreviewHandlerVisuals ptr) as ULONG
 1973         Release as function(byval This as IPreviewHandlerVisuals ptr) as ULONG
 1974         SetBackgroundColor as function(byval This as IPreviewHandlerVisuals ptr, byval color as COLORREF) as HRESULT
 1975         SetFont as function(byval This as IPreviewHandlerVisuals ptr, byval plf as const LOGFONTW ptr) as HRESULT
 1976         SetTextColor as function(byval This as IPreviewHandlerVisuals ptr, byval color as COLORREF) as HRESULT
 1977     end type
 1978 
 1979     type IPreviewHandlerVisuals_
 1980         lpVtbl as IPreviewHandlerVisualsVtbl ptr
 1981     end type
 1982 
 1983     #define IPreviewHandlerVisuals_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 1984     #define IPreviewHandlerVisuals_AddRef(This) (This)->lpVtbl->AddRef(This)
 1985     #define IPreviewHandlerVisuals_Release(This) (This)->lpVtbl->Release(This)
 1986     #define IPreviewHandlerVisuals_SetBackgroundColor(This, color) (This)->lpVtbl->SetBackgroundColor(This, color)
 1987     #define IPreviewHandlerVisuals_SetFont(This, plf) (This)->lpVtbl->SetFont(This, plf)
 1988     #define IPreviewHandlerVisuals_SetTextColor(This, color) (This)->lpVtbl->SetTextColor(This, color)
 1989 
 1990     declare function IPreviewHandlerVisuals_SetBackgroundColor_Proxy(byval This as IPreviewHandlerVisuals ptr, byval color as COLORREF) as HRESULT
 1991     declare sub IPreviewHandlerVisuals_SetBackgroundColor_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1992     declare function IPreviewHandlerVisuals_SetFont_Proxy(byval This as IPreviewHandlerVisuals ptr, byval plf as const LOGFONTW ptr) as HRESULT
 1993     declare sub IPreviewHandlerVisuals_SetFont_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1994     declare function IPreviewHandlerVisuals_SetTextColor_Proxy(byval This as IPreviewHandlerVisuals ptr, byval color as COLORREF) as HRESULT
 1995     declare sub IPreviewHandlerVisuals_SetTextColor_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 1996     #define __IVisualProperties_INTERFACE_DEFINED__
 1997 
 1998     type VPWATERMARKFLAGS as long
 1999     enum
 2000         VPWF_DEFAULT = &h0
 2001         VPWF_ALPHABLEND = &h1
 2002     end enum
 2003 
 2004     type VPCOLORFLAGS as long
 2005     enum
 2006         VPCF_TEXT = 1
 2007         VPCF_BACKGROUND = 2
 2008         VPCF_SORTCOLUMN = 3
 2009         VPCF_SUBTEXT = 4
 2010         VPCF_TEXTBACKGROUND = 5
 2011     end enum
 2012 
 2013     extern IID_IVisualProperties as const GUID
 2014     type IVisualProperties as IVisualProperties_
 2015 
 2016     type IVisualPropertiesVtbl
 2017         QueryInterface as function(byval This as IVisualProperties ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2018         AddRef as function(byval This as IVisualProperties ptr) as ULONG
 2019         Release as function(byval This as IVisualProperties ptr) as ULONG
 2020         SetWatermark as function(byval This as IVisualProperties ptr, byval hbmp as HBITMAP, byval vpwf as VPWATERMARKFLAGS) as HRESULT
 2021         SetColor as function(byval This as IVisualProperties ptr, byval vpcf as VPCOLORFLAGS, byval cr as COLORREF) as HRESULT
 2022         GetColor as function(byval This as IVisualProperties ptr, byval vpcf as VPCOLORFLAGS, byval pcr as COLORREF ptr) as HRESULT
 2023         SetItemHeight as function(byval This as IVisualProperties ptr, byval cyItemInPixels as long) as HRESULT
 2024         GetItemHeight as function(byval This as IVisualProperties ptr, byval cyItemInPixels as long ptr) as HRESULT
 2025         SetFont as function(byval This as IVisualProperties ptr, byval plf as const LOGFONTW ptr, byval bRedraw as WINBOOL) as HRESULT
 2026         GetFont as function(byval This as IVisualProperties ptr, byval plf as LOGFONTW ptr) as HRESULT
 2027         SetTheme as function(byval This as IVisualProperties ptr, byval pszSubAppName as LPCWSTR, byval pszSubIdList as LPCWSTR) as HRESULT
 2028     end type
 2029 
 2030     type IVisualProperties_
 2031         lpVtbl as IVisualPropertiesVtbl ptr
 2032     end type
 2033 
 2034     #define IVisualProperties_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2035     #define IVisualProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
 2036     #define IVisualProperties_Release(This) (This)->lpVtbl->Release(This)
 2037     #define IVisualProperties_SetWatermark(This, hbmp, vpwf) (This)->lpVtbl->SetWatermark(This, hbmp, vpwf)
 2038     #define IVisualProperties_SetColor(This, vpcf, cr) (This)->lpVtbl->SetColor(This, vpcf, cr)
 2039     #define IVisualProperties_GetColor(This, vpcf, pcr) (This)->lpVtbl->GetColor(This, vpcf, pcr)
 2040     #define IVisualProperties_SetItemHeight(This, cyItemInPixels) (This)->lpVtbl->SetItemHeight(This, cyItemInPixels)
 2041     #define IVisualProperties_GetItemHeight(This, cyItemInPixels) (This)->lpVtbl->GetItemHeight(This, cyItemInPixels)
 2042     #define IVisualProperties_SetFont(This, plf, bRedraw) (This)->lpVtbl->SetFont(This, plf, bRedraw)
 2043     #define IVisualProperties_GetFont(This, plf) (This)->lpVtbl->GetFont(This, plf)
 2044     #define IVisualProperties_SetTheme(This, pszSubAppName, pszSubIdList) (This)->lpVtbl->SetTheme(This, pszSubAppName, pszSubIdList)
 2045 
 2046     declare function IVisualProperties_SetWatermark_Proxy(byval This as IVisualProperties ptr, byval hbmp as HBITMAP, byval vpwf as VPWATERMARKFLAGS) as HRESULT
 2047     declare sub IVisualProperties_SetWatermark_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2048     declare function IVisualProperties_SetColor_Proxy(byval This as IVisualProperties ptr, byval vpcf as VPCOLORFLAGS, byval cr as COLORREF) as HRESULT
 2049     declare sub IVisualProperties_SetColor_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2050     declare function IVisualProperties_GetColor_Proxy(byval This as IVisualProperties ptr, byval vpcf as VPCOLORFLAGS, byval pcr as COLORREF ptr) as HRESULT
 2051     declare sub IVisualProperties_GetColor_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2052     declare function IVisualProperties_SetItemHeight_Proxy(byval This as IVisualProperties ptr, byval cyItemInPixels as long) as HRESULT
 2053     declare sub IVisualProperties_SetItemHeight_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2054     declare function IVisualProperties_GetItemHeight_Proxy(byval This as IVisualProperties ptr, byval cyItemInPixels as long ptr) as HRESULT
 2055     declare sub IVisualProperties_GetItemHeight_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2056     declare function IVisualProperties_SetFont_Proxy(byval This as IVisualProperties ptr, byval plf as const LOGFONTW ptr, byval bRedraw as WINBOOL) as HRESULT
 2057     declare sub IVisualProperties_SetFont_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2058     declare function IVisualProperties_GetFont_Proxy(byval This as IVisualProperties ptr, byval plf as LOGFONTW ptr) as HRESULT
 2059     declare sub IVisualProperties_GetFont_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2060     declare function IVisualProperties_SetTheme_Proxy(byval This as IVisualProperties ptr, byval pszSubAppName as LPCWSTR, byval pszSubIdList as LPCWSTR) as HRESULT
 2061     declare sub IVisualProperties_SetTheme_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2062 #endif
 2063 
 2064 const CDBOSC_SETFOCUS = &h00000000
 2065 const CDBOSC_KILLFOCUS = &h00000001
 2066 const CDBOSC_SELCHANGE = &h00000002
 2067 const CDBOSC_RENAME = &h00000003
 2068 const CDBOSC_STATECHANGE = &h00000004
 2069 #define __ICommDlgBrowser_INTERFACE_DEFINED__
 2070 extern IID_ICommDlgBrowser as const GUID
 2071 type ICommDlgBrowser as ICommDlgBrowser_
 2072 
 2073 type ICommDlgBrowserVtbl
 2074     QueryInterface as function(byval This as ICommDlgBrowser ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2075     AddRef as function(byval This as ICommDlgBrowser ptr) as ULONG
 2076     Release as function(byval This as ICommDlgBrowser ptr) as ULONG
 2077     OnDefaultCommand as function(byval This as ICommDlgBrowser ptr, byval ppshv as IShellView ptr) as HRESULT
 2078     OnStateChange as function(byval This as ICommDlgBrowser ptr, byval ppshv as IShellView ptr, byval uChange as ULONG) as HRESULT
 2079     IncludeObject as function(byval This as ICommDlgBrowser ptr, byval ppshv as IShellView ptr, byval pidl as LPCITEMIDLIST) as HRESULT
 2080 end type
 2081 
 2082 type ICommDlgBrowser_
 2083     lpVtbl as ICommDlgBrowserVtbl ptr
 2084 end type
 2085 
 2086 #define ICommDlgBrowser_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2087 #define ICommDlgBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
 2088 #define ICommDlgBrowser_Release(This) (This)->lpVtbl->Release(This)
 2089 #define ICommDlgBrowser_OnDefaultCommand(This, ppshv) (This)->lpVtbl->OnDefaultCommand(This, ppshv)
 2090 #define ICommDlgBrowser_OnStateChange(This, ppshv, uChange) (This)->lpVtbl->OnStateChange(This, ppshv, uChange)
 2091 #define ICommDlgBrowser_IncludeObject(This, ppshv, pidl) (This)->lpVtbl->IncludeObject(This, ppshv, pidl)
 2092 
 2093 declare function ICommDlgBrowser_OnDefaultCommand_Proxy(byval This as ICommDlgBrowser ptr, byval ppshv as IShellView ptr) as HRESULT
 2094 declare sub ICommDlgBrowser_OnDefaultCommand_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2095 declare function ICommDlgBrowser_OnStateChange_Proxy(byval This as ICommDlgBrowser ptr, byval ppshv as IShellView ptr, byval uChange as ULONG) as HRESULT
 2096 declare sub ICommDlgBrowser_OnStateChange_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2097 declare function ICommDlgBrowser_IncludeObject_Proxy(byval This as ICommDlgBrowser ptr, byval ppshv as IShellView ptr, byval pidl as LPCITEMIDLIST) as HRESULT
 2098 declare sub ICommDlgBrowser_IncludeObject_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2099 type LPCOMMDLGBROWSER as ICommDlgBrowser ptr
 2100 extern SID_SExplorerBrowserFrame alias "IID_ICommDlgBrowser" as const GUID
 2101 
 2102 const CDB2N_CONTEXTMENU_DONE = &h00000001
 2103 const CDB2N_CONTEXTMENU_START = &h00000002
 2104 const CDB2GVF_SHOWALLFILES = &h1
 2105 
 2106 #if _WIN32_WINNT >= &h0600
 2107     const CDB2GVF_ISFILESAVE = &h2
 2108     const CDB2GVF_ALLOWPREVIEWPANE = &h4
 2109     const CDB2GVF_NOSELECTVERB = &h8
 2110     const CDB2GVF_NOINCLUDEITEM = &h10
 2111     const CDB2GVF_ISFOLDERPICKER = &h20
 2112     const CDB2GVF_ADDSHIELD = &h40
 2113 #endif
 2114 
 2115 #define __ICommDlgBrowser2_INTERFACE_DEFINED__
 2116 extern IID_ICommDlgBrowser2 as const GUID
 2117 type ICommDlgBrowser2 as ICommDlgBrowser2_
 2118 
 2119 type ICommDlgBrowser2Vtbl
 2120     QueryInterface as function(byval This as ICommDlgBrowser2 ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2121     AddRef as function(byval This as ICommDlgBrowser2 ptr) as ULONG
 2122     Release as function(byval This as ICommDlgBrowser2 ptr) as ULONG
 2123     OnDefaultCommand as function(byval This as ICommDlgBrowser2 ptr, byval ppshv as IShellView ptr) as HRESULT
 2124     OnStateChange as function(byval This as ICommDlgBrowser2 ptr, byval ppshv as IShellView ptr, byval uChange as ULONG) as HRESULT
 2125     IncludeObject as function(byval This as ICommDlgBrowser2 ptr, byval ppshv as IShellView ptr, byval pidl as LPCITEMIDLIST) as HRESULT
 2126     Notify as function(byval This as ICommDlgBrowser2 ptr, byval ppshv as IShellView ptr, byval dwNotifyType as DWORD) as HRESULT
 2127     GetDefaultMenuText as function(byval This as ICommDlgBrowser2 ptr, byval ppshv as IShellView ptr, byval pszText as LPWSTR, byval cchMax as long) as HRESULT
 2128     GetViewFlags as function(byval This as ICommDlgBrowser2 ptr, byval pdwFlags as DWORD ptr) as HRESULT
 2129 end type
 2130 
 2131 type ICommDlgBrowser2_
 2132     lpVtbl as ICommDlgBrowser2Vtbl ptr
 2133 end type
 2134 
 2135 #define ICommDlgBrowser2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2136 #define ICommDlgBrowser2_AddRef(This) (This)->lpVtbl->AddRef(This)
 2137 #define ICommDlgBrowser2_Release(This) (This)->lpVtbl->Release(This)
 2138 #define ICommDlgBrowser2_OnDefaultCommand(This, ppshv) (This)->lpVtbl->OnDefaultCommand(This, ppshv)
 2139 #define ICommDlgBrowser2_OnStateChange(This, ppshv, uChange) (This)->lpVtbl->OnStateChange(This, ppshv, uChange)
 2140 #define ICommDlgBrowser2_IncludeObject(This, ppshv, pidl) (This)->lpVtbl->IncludeObject(This, ppshv, pidl)
 2141 #define ICommDlgBrowser2_Notify(This, ppshv, dwNotifyType) (This)->lpVtbl->Notify(This, ppshv, dwNotifyType)
 2142 #define ICommDlgBrowser2_GetDefaultMenuText(This, ppshv, pszText, cchMax) (This)->lpVtbl->GetDefaultMenuText(This, ppshv, pszText, cchMax)
 2143 #define ICommDlgBrowser2_GetViewFlags(This, pdwFlags) (This)->lpVtbl->GetViewFlags(This, pdwFlags)
 2144 
 2145 declare function ICommDlgBrowser2_Notify_Proxy(byval This as ICommDlgBrowser2 ptr, byval ppshv as IShellView ptr, byval dwNotifyType as DWORD) as HRESULT
 2146 declare sub ICommDlgBrowser2_Notify_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2147 declare function ICommDlgBrowser2_GetDefaultMenuText_Proxy(byval This as ICommDlgBrowser2 ptr, byval ppshv as IShellView ptr, byval pszText as LPWSTR, byval cchMax as long) as HRESULT
 2148 declare sub ICommDlgBrowser2_GetDefaultMenuText_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2149 declare function ICommDlgBrowser2_GetViewFlags_Proxy(byval This as ICommDlgBrowser2 ptr, byval pdwFlags as DWORD ptr) as HRESULT
 2150 declare sub ICommDlgBrowser2_GetViewFlags_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2151 type LPCOMMDLGBROWSER2 as ICommDlgBrowser2 ptr
 2152 
 2153 #if _WIN32_WINNT >= &h0600
 2154     #define __ICommDlgBrowser3_INTERFACE_DEFINED__
 2155     extern IID_ICommDlgBrowser3 as const GUID
 2156     type ICommDlgBrowser3 as ICommDlgBrowser3_
 2157 
 2158     type ICommDlgBrowser3Vtbl
 2159         QueryInterface as function(byval This as ICommDlgBrowser3 ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2160         AddRef as function(byval This as ICommDlgBrowser3 ptr) as ULONG
 2161         Release as function(byval This as ICommDlgBrowser3 ptr) as ULONG
 2162         OnDefaultCommand as function(byval This as ICommDlgBrowser3 ptr, byval ppshv as IShellView ptr) as HRESULT
 2163         OnStateChange as function(byval This as ICommDlgBrowser3 ptr, byval ppshv as IShellView ptr, byval uChange as ULONG) as HRESULT
 2164         IncludeObject as function(byval This as ICommDlgBrowser3 ptr, byval ppshv as IShellView ptr, byval pidl as LPCITEMIDLIST) as HRESULT
 2165         Notify as function(byval This as ICommDlgBrowser3 ptr, byval ppshv as IShellView ptr, byval dwNotifyType as DWORD) as HRESULT
 2166         GetDefaultMenuText as function(byval This as ICommDlgBrowser3 ptr, byval ppshv as IShellView ptr, byval pszText as LPWSTR, byval cchMax as long) as HRESULT
 2167         GetViewFlags as function(byval This as ICommDlgBrowser3 ptr, byval pdwFlags as DWORD ptr) as HRESULT
 2168         OnColumnClicked as function(byval This as ICommDlgBrowser3 ptr, byval ppshv as IShellView ptr, byval iColumn as long) as HRESULT
 2169         GetCurrentFilter as function(byval This as ICommDlgBrowser3 ptr, byval pszFileSpec as LPWSTR, byval cchFileSpec as long) as HRESULT
 2170         OnPreViewCreated as function(byval This as ICommDlgBrowser3 ptr, byval ppshv as IShellView ptr) as HRESULT
 2171     end type
 2172 
 2173     type ICommDlgBrowser3_
 2174         lpVtbl as ICommDlgBrowser3Vtbl ptr
 2175     end type
 2176 
 2177     #define ICommDlgBrowser3_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2178     #define ICommDlgBrowser3_AddRef(This) (This)->lpVtbl->AddRef(This)
 2179     #define ICommDlgBrowser3_Release(This) (This)->lpVtbl->Release(This)
 2180     #define ICommDlgBrowser3_OnDefaultCommand(This, ppshv) (This)->lpVtbl->OnDefaultCommand(This, ppshv)
 2181     #define ICommDlgBrowser3_OnStateChange(This, ppshv, uChange) (This)->lpVtbl->OnStateChange(This, ppshv, uChange)
 2182     #define ICommDlgBrowser3_IncludeObject(This, ppshv, pidl) (This)->lpVtbl->IncludeObject(This, ppshv, pidl)
 2183     #define ICommDlgBrowser3_Notify(This, ppshv, dwNotifyType) (This)->lpVtbl->Notify(This, ppshv, dwNotifyType)
 2184     #define ICommDlgBrowser3_GetDefaultMenuText(This, ppshv, pszText, cchMax) (This)->lpVtbl->GetDefaultMenuText(This, ppshv, pszText, cchMax)
 2185     #define ICommDlgBrowser3_GetViewFlags(This, pdwFlags) (This)->lpVtbl->GetViewFlags(This, pdwFlags)
 2186     #define ICommDlgBrowser3_OnColumnClicked(This, ppshv, iColumn) (This)->lpVtbl->OnColumnClicked(This, ppshv, iColumn)
 2187     #define ICommDlgBrowser3_GetCurrentFilter(This, pszFileSpec, cchFileSpec) (This)->lpVtbl->GetCurrentFilter(This, pszFileSpec, cchFileSpec)
 2188     #define ICommDlgBrowser3_OnPreViewCreated(This, ppshv) (This)->lpVtbl->OnPreViewCreated(This, ppshv)
 2189 
 2190     declare function ICommDlgBrowser3_OnColumnClicked_Proxy(byval This as ICommDlgBrowser3 ptr, byval ppshv as IShellView ptr, byval iColumn as long) as HRESULT
 2191     declare sub ICommDlgBrowser3_OnColumnClicked_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2192     declare function ICommDlgBrowser3_GetCurrentFilter_Proxy(byval This as ICommDlgBrowser3 ptr, byval pszFileSpec as LPWSTR, byval cchFileSpec as long) as HRESULT
 2193     declare sub ICommDlgBrowser3_GetCurrentFilter_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2194     declare function ICommDlgBrowser3_OnPreViewCreated_Proxy(byval This as ICommDlgBrowser3 ptr, byval ppshv as IShellView ptr) as HRESULT
 2195     declare sub ICommDlgBrowser3_OnPreViewCreated_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2196 
 2197     type CM_MASK as long
 2198     enum
 2199         CM_MASK_WIDTH = &h1
 2200         CM_MASK_DEFAULTWIDTH = &h2
 2201         CM_MASK_IDEALWIDTH = &h4
 2202         CM_MASK_NAME = &h8
 2203         CM_MASK_STATE = &h10
 2204     end enum
 2205 
 2206     type CM_STATE as long
 2207     enum
 2208         CM_STATE_NONE = &h0
 2209         CM_STATE_VISIBLE = &h1
 2210         CM_STATE_FIXEDWIDTH = &h2
 2211         CM_STATE_NOSORTBYFOLDERNESS = &h4
 2212         CM_STATE_ALWAYSVISIBLE = &h8
 2213     end enum
 2214 
 2215     type CM_ENUM_FLAGS as long
 2216     enum
 2217         CM_ENUM_ALL = &h1
 2218         CM_ENUM_VISIBLE = &h2
 2219     end enum
 2220 
 2221     type CM_SET_WIDTH_VALUE as long
 2222     enum
 2223         CM_WIDTH_USEDEFAULT = -1
 2224         CM_WIDTH_AUTOSIZE = -2
 2225     end enum
 2226 
 2227     type CM_COLUMNINFO
 2228         cbSize as DWORD
 2229         dwMask as DWORD
 2230         dwState as DWORD
 2231         uWidth as UINT
 2232         uDefaultWidth as UINT
 2233         uIdealWidth as UINT
 2234         wszName as wstring * 80
 2235     end type
 2236 
 2237     #define __IColumnManager_INTERFACE_DEFINED__
 2238     extern IID_IColumnManager as const GUID
 2239     type IColumnManager as IColumnManager_
 2240 
 2241     type IColumnManagerVtbl
 2242         QueryInterface as function(byval This as IColumnManager ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2243         AddRef as function(byval This as IColumnManager ptr) as ULONG
 2244         Release as function(byval This as IColumnManager ptr) as ULONG
 2245         SetColumnInfo as function(byval This as IColumnManager ptr, byval propkey as const PROPERTYKEY const ptr, byval pcmci as const CM_COLUMNINFO ptr) as HRESULT
 2246         GetColumnInfo as function(byval This as IColumnManager ptr, byval propkey as const PROPERTYKEY const ptr, byval pcmci as CM_COLUMNINFO ptr) as HRESULT
 2247         GetColumnCount as function(byval This as IColumnManager ptr, byval dwFlags as CM_ENUM_FLAGS, byval puCount as UINT ptr) as HRESULT
 2248         GetColumns as function(byval This as IColumnManager ptr, byval dwFlags as CM_ENUM_FLAGS, byval rgkeyOrder as PROPERTYKEY ptr, byval cColumns as UINT) as HRESULT
 2249         SetColumns as function(byval This as IColumnManager ptr, byval rgkeyOrder as const PROPERTYKEY ptr, byval cVisible as UINT) as HRESULT
 2250     end type
 2251 
 2252     type IColumnManager_
 2253         lpVtbl as IColumnManagerVtbl ptr
 2254     end type
 2255 
 2256     #define IColumnManager_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2257     #define IColumnManager_AddRef(This) (This)->lpVtbl->AddRef(This)
 2258     #define IColumnManager_Release(This) (This)->lpVtbl->Release(This)
 2259     #define IColumnManager_SetColumnInfo(This, propkey, pcmci) (This)->lpVtbl->SetColumnInfo(This, propkey, pcmci)
 2260     #define IColumnManager_GetColumnInfo(This, propkey, pcmci) (This)->lpVtbl->GetColumnInfo(This, propkey, pcmci)
 2261     #define IColumnManager_GetColumnCount(This, dwFlags, puCount) (This)->lpVtbl->GetColumnCount(This, dwFlags, puCount)
 2262     #define IColumnManager_GetColumns(This, dwFlags, rgkeyOrder, cColumns) (This)->lpVtbl->GetColumns(This, dwFlags, rgkeyOrder, cColumns)
 2263     #define IColumnManager_SetColumns(This, rgkeyOrder, cVisible) (This)->lpVtbl->SetColumns(This, rgkeyOrder, cVisible)
 2264 
 2265     declare function IColumnManager_SetColumnInfo_Proxy(byval This as IColumnManager ptr, byval propkey as const PROPERTYKEY const ptr, byval pcmci as const CM_COLUMNINFO ptr) as HRESULT
 2266     declare sub IColumnManager_SetColumnInfo_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2267     declare function IColumnManager_GetColumnInfo_Proxy(byval This as IColumnManager ptr, byval propkey as const PROPERTYKEY const ptr, byval pcmci as CM_COLUMNINFO ptr) as HRESULT
 2268     declare sub IColumnManager_GetColumnInfo_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2269     declare function IColumnManager_GetColumnCount_Proxy(byval This as IColumnManager ptr, byval dwFlags as CM_ENUM_FLAGS, byval puCount as UINT ptr) as HRESULT
 2270     declare sub IColumnManager_GetColumnCount_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2271     declare function IColumnManager_GetColumns_Proxy(byval This as IColumnManager ptr, byval dwFlags as CM_ENUM_FLAGS, byval rgkeyOrder as PROPERTYKEY ptr, byval cColumns as UINT) as HRESULT
 2272     declare sub IColumnManager_GetColumns_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2273     declare function IColumnManager_SetColumns_Proxy(byval This as IColumnManager ptr, byval rgkeyOrder as const PROPERTYKEY ptr, byval cVisible as UINT) as HRESULT
 2274     declare sub IColumnManager_SetColumns_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2275 #endif
 2276 
 2277 #define __IFolderFilterSite_INTERFACE_DEFINED__
 2278 extern IID_IFolderFilterSite as const GUID
 2279 type IFolderFilterSite as IFolderFilterSite_
 2280 
 2281 type IFolderFilterSiteVtbl
 2282     QueryInterface as function(byval This as IFolderFilterSite ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2283     AddRef as function(byval This as IFolderFilterSite ptr) as ULONG
 2284     Release as function(byval This as IFolderFilterSite ptr) as ULONG
 2285     SetFilter as function(byval This as IFolderFilterSite ptr, byval punk as IUnknown ptr) as HRESULT
 2286 end type
 2287 
 2288 type IFolderFilterSite_
 2289     lpVtbl as IFolderFilterSiteVtbl ptr
 2290 end type
 2291 
 2292 #define IFolderFilterSite_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2293 #define IFolderFilterSite_AddRef(This) (This)->lpVtbl->AddRef(This)
 2294 #define IFolderFilterSite_Release(This) (This)->lpVtbl->Release(This)
 2295 #define IFolderFilterSite_SetFilter(This, punk) (This)->lpVtbl->SetFilter(This, punk)
 2296 declare function IFolderFilterSite_SetFilter_Proxy(byval This as IFolderFilterSite ptr, byval punk as IUnknown ptr) as HRESULT
 2297 declare sub IFolderFilterSite_SetFilter_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2298 #define __IFolderFilter_INTERFACE_DEFINED__
 2299 extern IID_IFolderFilter as const GUID
 2300 type IFolderFilter as IFolderFilter_
 2301 
 2302 type IFolderFilterVtbl
 2303     QueryInterface as function(byval This as IFolderFilter ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2304     AddRef as function(byval This as IFolderFilter ptr) as ULONG
 2305     Release as function(byval This as IFolderFilter ptr) as ULONG
 2306     ShouldShow as function(byval This as IFolderFilter ptr, byval psf as IShellFolder ptr, byval pidlFolder as LPCITEMIDLIST, byval pidlItem as LPCITEMIDLIST) as HRESULT
 2307     GetEnumFlags as function(byval This as IFolderFilter ptr, byval psf as IShellFolder ptr, byval pidlFolder as LPCITEMIDLIST, byval phwnd as HWND ptr, byval pgrfFlags as DWORD ptr) as HRESULT
 2308 end type
 2309 
 2310 type IFolderFilter_
 2311     lpVtbl as IFolderFilterVtbl ptr
 2312 end type
 2313 
 2314 #define IFolderFilter_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2315 #define IFolderFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
 2316 #define IFolderFilter_Release(This) (This)->lpVtbl->Release(This)
 2317 #define IFolderFilter_ShouldShow(This, psf, pidlFolder, pidlItem) (This)->lpVtbl->ShouldShow(This, psf, pidlFolder, pidlItem)
 2318 #define IFolderFilter_GetEnumFlags(This, psf, pidlFolder, phwnd, pgrfFlags) (This)->lpVtbl->GetEnumFlags(This, psf, pidlFolder, phwnd, pgrfFlags)
 2319 
 2320 declare function IFolderFilter_ShouldShow_Proxy(byval This as IFolderFilter ptr, byval psf as IShellFolder ptr, byval pidlFolder as LPCITEMIDLIST, byval pidlItem as LPCITEMIDLIST) as HRESULT
 2321 declare sub IFolderFilter_ShouldShow_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2322 declare function IFolderFilter_GetEnumFlags_Proxy(byval This as IFolderFilter ptr, byval psf as IShellFolder ptr, byval pidlFolder as LPCITEMIDLIST, byval phwnd as HWND ptr, byval pgrfFlags as DWORD ptr) as HRESULT
 2323 declare sub IFolderFilter_GetEnumFlags_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2324 #define __IInputObjectSite_INTERFACE_DEFINED__
 2325 extern IID_IInputObjectSite as const GUID
 2326 type IInputObjectSite as IInputObjectSite_
 2327 
 2328 type IInputObjectSiteVtbl
 2329     QueryInterface as function(byval This as IInputObjectSite ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2330     AddRef as function(byval This as IInputObjectSite ptr) as ULONG
 2331     Release as function(byval This as IInputObjectSite ptr) as ULONG
 2332     OnFocusChangeIS as function(byval This as IInputObjectSite ptr, byval punkObj as IUnknown ptr, byval fSetFocus as WINBOOL) as HRESULT
 2333 end type
 2334 
 2335 type IInputObjectSite_
 2336     lpVtbl as IInputObjectSiteVtbl ptr
 2337 end type
 2338 
 2339 #define IInputObjectSite_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2340 #define IInputObjectSite_AddRef(This) (This)->lpVtbl->AddRef(This)
 2341 #define IInputObjectSite_Release(This) (This)->lpVtbl->Release(This)
 2342 #define IInputObjectSite_OnFocusChangeIS(This, punkObj, fSetFocus) (This)->lpVtbl->OnFocusChangeIS(This, punkObj, fSetFocus)
 2343 declare function IInputObjectSite_OnFocusChangeIS_Proxy(byval This as IInputObjectSite ptr, byval punkObj as IUnknown ptr, byval fSetFocus as WINBOOL) as HRESULT
 2344 declare sub IInputObjectSite_OnFocusChangeIS_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2345 #define __IInputObject_INTERFACE_DEFINED__
 2346 extern IID_IInputObject as const GUID
 2347 type IInputObject as IInputObject_
 2348 
 2349 type IInputObjectVtbl
 2350     QueryInterface as function(byval This as IInputObject ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2351     AddRef as function(byval This as IInputObject ptr) as ULONG
 2352     Release as function(byval This as IInputObject ptr) as ULONG
 2353     UIActivateIO as function(byval This as IInputObject ptr, byval fActivate as WINBOOL, byval pMsg as MSG ptr) as HRESULT
 2354     HasFocusIO as function(byval This as IInputObject ptr) as HRESULT
 2355     TranslateAcceleratorIO as function(byval This as IInputObject ptr, byval pMsg as MSG ptr) as HRESULT
 2356 end type
 2357 
 2358 type IInputObject_
 2359     lpVtbl as IInputObjectVtbl ptr
 2360 end type
 2361 
 2362 #define IInputObject_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2363 #define IInputObject_AddRef(This) (This)->lpVtbl->AddRef(This)
 2364 #define IInputObject_Release(This) (This)->lpVtbl->Release(This)
 2365 #define IInputObject_UIActivateIO(This, fActivate, pMsg) (This)->lpVtbl->UIActivateIO(This, fActivate, pMsg)
 2366 #define IInputObject_HasFocusIO(This) (This)->lpVtbl->HasFocusIO(This)
 2367 #define IInputObject_TranslateAcceleratorIO(This, pMsg) (This)->lpVtbl->TranslateAcceleratorIO(This, pMsg)
 2368 
 2369 declare function IInputObject_UIActivateIO_Proxy(byval This as IInputObject ptr, byval fActivate as WINBOOL, byval pMsg as MSG ptr) as HRESULT
 2370 declare sub IInputObject_UIActivateIO_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2371 declare function IInputObject_HasFocusIO_Proxy(byval This as IInputObject ptr) as HRESULT
 2372 declare sub IInputObject_HasFocusIO_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2373 declare function IInputObject_TranslateAcceleratorIO_Proxy(byval This as IInputObject ptr, byval pMsg as MSG ptr) as HRESULT
 2374 declare sub IInputObject_TranslateAcceleratorIO_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2375 #define __IInputObject2_INTERFACE_DEFINED__
 2376 extern IID_IInputObject2 as const GUID
 2377 type IInputObject2 as IInputObject2_
 2378 
 2379 type IInputObject2Vtbl
 2380     QueryInterface as function(byval This as IInputObject2 ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2381     AddRef as function(byval This as IInputObject2 ptr) as ULONG
 2382     Release as function(byval This as IInputObject2 ptr) as ULONG
 2383     UIActivateIO as function(byval This as IInputObject2 ptr, byval fActivate as WINBOOL, byval pMsg as MSG ptr) as HRESULT
 2384     HasFocusIO as function(byval This as IInputObject2 ptr) as HRESULT
 2385     TranslateAcceleratorIO as function(byval This as IInputObject2 ptr, byval pMsg as MSG ptr) as HRESULT
 2386     TranslateAcceleratorGlobal as function(byval This as IInputObject2 ptr, byval pMsg as MSG ptr) as HRESULT
 2387 end type
 2388 
 2389 type IInputObject2_
 2390     lpVtbl as IInputObject2Vtbl ptr
 2391 end type
 2392 
 2393 #define IInputObject2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2394 #define IInputObject2_AddRef(This) (This)->lpVtbl->AddRef(This)
 2395 #define IInputObject2_Release(This) (This)->lpVtbl->Release(This)
 2396 #define IInputObject2_UIActivateIO(This, fActivate, pMsg) (This)->lpVtbl->UIActivateIO(This, fActivate, pMsg)
 2397 #define IInputObject2_HasFocusIO(This) (This)->lpVtbl->HasFocusIO(This)
 2398 #define IInputObject2_TranslateAcceleratorIO(This, pMsg) (This)->lpVtbl->TranslateAcceleratorIO(This, pMsg)
 2399 #define IInputObject2_TranslateAcceleratorGlobal(This, pMsg) (This)->lpVtbl->TranslateAcceleratorGlobal(This, pMsg)
 2400 declare function IInputObject2_TranslateAcceleratorGlobal_Proxy(byval This as IInputObject2 ptr, byval pMsg as MSG ptr) as HRESULT
 2401 declare sub IInputObject2_TranslateAcceleratorGlobal_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2402 #define __IShellIcon_INTERFACE_DEFINED__
 2403 extern IID_IShellIcon as const GUID
 2404 type IShellIcon as IShellIcon_
 2405 
 2406 type IShellIconVtbl
 2407     QueryInterface as function(byval This as IShellIcon ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2408     AddRef as function(byval This as IShellIcon ptr) as ULONG
 2409     Release as function(byval This as IShellIcon ptr) as ULONG
 2410     GetIconOf as function(byval This as IShellIcon ptr, byval pidl as LPCITEMIDLIST, byval flags as UINT, byval pIconIndex as long ptr) as HRESULT
 2411 end type
 2412 
 2413 type IShellIcon_
 2414     lpVtbl as IShellIconVtbl ptr
 2415 end type
 2416 
 2417 #define IShellIcon_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2418 #define IShellIcon_AddRef(This) (This)->lpVtbl->AddRef(This)
 2419 #define IShellIcon_Release(This) (This)->lpVtbl->Release(This)
 2420 #define IShellIcon_GetIconOf(This, pidl, flags, pIconIndex) (This)->lpVtbl->GetIconOf(This, pidl, flags, pIconIndex)
 2421 declare function IShellIcon_GetIconOf_Proxy(byval This as IShellIcon ptr, byval pidl as LPCITEMIDLIST, byval flags as UINT, byval pIconIndex as long ptr) as HRESULT
 2422 declare sub IShellIcon_GetIconOf_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2423 const SBSP_DEFBROWSER = &h0000
 2424 const SBSP_SAMEBROWSER = &h0001
 2425 const SBSP_NEWBROWSER = &h0002
 2426 const SBSP_DEFMODE = &h0000
 2427 const SBSP_OPENMODE = &h0010
 2428 const SBSP_EXPLOREMODE = &h0020
 2429 const SBSP_HELPMODE = &h0040
 2430 const SBSP_NOTRANSFERHIST = &h0080
 2431 const SBSP_ABSOLUTE = &h0000
 2432 const SBSP_RELATIVE = &h1000
 2433 const SBSP_PARENT = &h2000
 2434 const SBSP_NAVIGATEBACK = &h4000
 2435 const SBSP_NAVIGATEFORWARD = &h8000
 2436 const SBSP_ALLOW_AUTONAVIGATE = &h00010000
 2437 
 2438 #if _WIN32_WINNT >= &h0600
 2439     const SBSP_KEEPSAMETEMPLATE = &h00020000
 2440     const SBSP_KEEPWORDWHEELTEXT = &h00040000
 2441     const SBSP_ACTIVATE_NOFOCUS = &h00080000
 2442     const SBSP_CREATENOHISTORY = &h00100000
 2443     const SBSP_PLAYNOSOUND = &h00200000
 2444     const SBSP_CALLERUNTRUSTED = &h00800000
 2445     const SBSP_TRUSTFIRSTDOWNLOAD = &h01000000
 2446     const SBSP_UNTRUSTEDFORDOWNLOAD = &h02000000
 2447 #endif
 2448 
 2449 const SBSP_NOAUTOSELECT = &h04000000
 2450 const SBSP_WRITENOHISTORY = &h08000000
 2451 
 2452 #if _WIN32_WINNT >= &h0600
 2453     const SBSP_TRUSTEDFORACTIVEX = &h10000000
 2454     const SBSP_FEEDNAVIGATION = &h20000000
 2455 #endif
 2456 
 2457 const SBSP_REDIRECT = &h40000000
 2458 const SBSP_INITIATEDBYHLINKFRAME = &h80000000
 2459 const FCW_STATUS = &h0001
 2460 const FCW_TOOLBAR = &h0002
 2461 const FCW_TREE = &h0003
 2462 const FCW_INTERNETBAR = &h0006
 2463 const FCW_PROGRESS = &h0008
 2464 const FCT_MERGE = &h0001
 2465 const FCT_CONFIGABLE = &h0002
 2466 const FCT_ADDTOEND = &h0004
 2467 type LPTBBUTTONSB as LPTBBUTTON
 2468 #define __IShellBrowser_INTERFACE_DEFINED__
 2469 extern IID_IShellBrowser as const GUID
 2470 extern SID_SShellBrowser alias "IID_IShellBrowser" as const GUID
 2471 
 2472 type IShellBrowserVtbl
 2473     QueryInterface as function(byval This as IShellBrowser ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2474     AddRef as function(byval This as IShellBrowser ptr) as ULONG
 2475     Release as function(byval This as IShellBrowser ptr) as ULONG
 2476     GetWindow as function(byval This as IShellBrowser ptr, byval phwnd as HWND ptr) as HRESULT
 2477     ContextSensitiveHelp as function(byval This as IShellBrowser ptr, byval fEnterMode as WINBOOL) as HRESULT
 2478     InsertMenusSB as function(byval This as IShellBrowser ptr, byval hmenuShared as HMENU, byval lpMenuWidths as LPOLEMENUGROUPWIDTHS) as HRESULT
 2479     SetMenuSB as function(byval This as IShellBrowser ptr, byval hmenuShared as HMENU, byval holemenuRes as HOLEMENU, byval hwndActiveObject as HWND) as HRESULT
 2480     RemoveMenusSB as function(byval This as IShellBrowser ptr, byval hmenuShared as HMENU) as HRESULT
 2481     SetStatusTextSB as function(byval This as IShellBrowser ptr, byval pszStatusText as LPCWSTR) as HRESULT
 2482     EnableModelessSB as function(byval This as IShellBrowser ptr, byval fEnable as WINBOOL) as HRESULT
 2483     TranslateAcceleratorSB as function(byval This as IShellBrowser ptr, byval pmsg as MSG ptr, byval wID as WORD) as HRESULT
 2484     BrowseObject as function(byval This as IShellBrowser ptr, byval pidl as LPCITEMIDLIST, byval wFlags as UINT) as HRESULT
 2485     GetViewStateStream as function(byval This as IShellBrowser ptr, byval grfMode as DWORD, byval ppStrm as IStream ptr ptr) as HRESULT
 2486     GetControlWindow as function(byval This as IShellBrowser ptr, byval id as UINT, byval phwnd as HWND ptr) as HRESULT
 2487     SendControlMsg as function(byval This as IShellBrowser ptr, byval id as UINT, byval uMsg as UINT, byval wParam as WPARAM, byval lParam as LPARAM, byval pret as LRESULT ptr) as HRESULT
 2488     QueryActiveShellView as function(byval This as IShellBrowser ptr, byval ppshv as IShellView ptr ptr) as HRESULT
 2489     OnViewWindowActive as function(byval This as IShellBrowser ptr, byval pshv as IShellView ptr) as HRESULT
 2490     SetToolbarItems as function(byval This as IShellBrowser ptr, byval lpButtons as LPTBBUTTONSB, byval nButtons as UINT, byval uFlags as UINT) as HRESULT
 2491 end type
 2492 
 2493 type IShellBrowser_
 2494     lpVtbl as IShellBrowserVtbl ptr
 2495 end type
 2496 
 2497 #define IShellBrowser_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2498 #define IShellBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
 2499 #define IShellBrowser_Release(This) (This)->lpVtbl->Release(This)
 2500 #define IShellBrowser_GetWindow(This, phwnd) (This)->lpVtbl->GetWindow(This, phwnd)
 2501 #define IShellBrowser_ContextSensitiveHelp(This, fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This, fEnterMode)
 2502 #define IShellBrowser_InsertMenusSB(This, hmenuShared, lpMenuWidths) (This)->lpVtbl->InsertMenusSB(This, hmenuShared, lpMenuWidths)
 2503 #define IShellBrowser_SetMenuSB(This, hmenuShared, holemenuRes, hwndActiveObject) (This)->lpVtbl->SetMenuSB(This, hmenuShared, holemenuRes, hwndActiveObject)
 2504 #define IShellBrowser_RemoveMenusSB(This, hmenuShared) (This)->lpVtbl->RemoveMenusSB(This, hmenuShared)
 2505 #define IShellBrowser_SetStatusTextSB(This, pszStatusText) (This)->lpVtbl->SetStatusTextSB(This, pszStatusText)
 2506 #define IShellBrowser_EnableModelessSB(This, fEnable) (This)->lpVtbl->EnableModelessSB(This, fEnable)
 2507 #define IShellBrowser_TranslateAcceleratorSB(This, pmsg, wID) (This)->lpVtbl->TranslateAcceleratorSB(This, pmsg, wID)
 2508 #define IShellBrowser_BrowseObject(This, pidl, wFlags) (This)->lpVtbl->BrowseObject(This, pidl, wFlags)
 2509 #define IShellBrowser_GetViewStateStream(This, grfMode, ppStrm) (This)->lpVtbl->GetViewStateStream(This, grfMode, ppStrm)
 2510 #define IShellBrowser_GetControlWindow(This, id, phwnd) (This)->lpVtbl->GetControlWindow(This, id, phwnd)
 2511 #define IShellBrowser_SendControlMsg(This, id, uMsg, wParam, lParam, pret) (This)->lpVtbl->SendControlMsg(This, id, uMsg, wParam, lParam, pret)
 2512 #define IShellBrowser_QueryActiveShellView(This, ppshv) (This)->lpVtbl->QueryActiveShellView(This, ppshv)
 2513 #define IShellBrowser_OnViewWindowActive(This, pshv) (This)->lpVtbl->OnViewWindowActive(This, pshv)
 2514 #define IShellBrowser_SetToolbarItems(This, lpButtons, nButtons, uFlags) (This)->lpVtbl->SetToolbarItems(This, lpButtons, nButtons, uFlags)
 2515 
 2516 declare function IShellBrowser_InsertMenusSB_Proxy(byval This as IShellBrowser ptr, byval hmenuShared as HMENU, byval lpMenuWidths as LPOLEMENUGROUPWIDTHS) as HRESULT
 2517 declare sub IShellBrowser_InsertMenusSB_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2518 declare function IShellBrowser_SetMenuSB_Proxy(byval This as IShellBrowser ptr, byval hmenuShared as HMENU, byval holemenuRes as HOLEMENU, byval hwndActiveObject as HWND) as HRESULT
 2519 declare sub IShellBrowser_SetMenuSB_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2520 declare function IShellBrowser_RemoveMenusSB_Proxy(byval This as IShellBrowser ptr, byval hmenuShared as HMENU) as HRESULT
 2521 declare sub IShellBrowser_RemoveMenusSB_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2522 declare function IShellBrowser_SetStatusTextSB_Proxy(byval This as IShellBrowser ptr, byval pszStatusText as LPCWSTR) as HRESULT
 2523 declare sub IShellBrowser_SetStatusTextSB_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2524 declare function IShellBrowser_EnableModelessSB_Proxy(byval This as IShellBrowser ptr, byval fEnable as WINBOOL) as HRESULT
 2525 declare sub IShellBrowser_EnableModelessSB_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2526 declare function IShellBrowser_TranslateAcceleratorSB_Proxy(byval This as IShellBrowser ptr, byval pmsg as MSG ptr, byval wID as WORD) as HRESULT
 2527 declare sub IShellBrowser_TranslateAcceleratorSB_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2528 declare function IShellBrowser_BrowseObject_Proxy(byval This as IShellBrowser ptr, byval pidl as LPCITEMIDLIST, byval wFlags as UINT) as HRESULT
 2529 declare sub IShellBrowser_BrowseObject_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2530 declare function IShellBrowser_GetViewStateStream_Proxy(byval This as IShellBrowser ptr, byval grfMode as DWORD, byval ppStrm as IStream ptr ptr) as HRESULT
 2531 declare sub IShellBrowser_GetViewStateStream_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2532 declare function IShellBrowser_GetControlWindow_Proxy(byval This as IShellBrowser ptr, byval id as UINT, byval phwnd as HWND ptr) as HRESULT
 2533 declare sub IShellBrowser_GetControlWindow_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2534 declare function IShellBrowser_QueryActiveShellView_Proxy(byval This as IShellBrowser ptr, byval ppshv as IShellView ptr ptr) as HRESULT
 2535 declare sub IShellBrowser_QueryActiveShellView_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2536 declare function IShellBrowser_OnViewWindowActive_Proxy(byval This as IShellBrowser ptr, byval pshv as IShellView ptr) as HRESULT
 2537 declare sub IShellBrowser_OnViewWindowActive_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2538 type LPSHELLBROWSER as IShellBrowser ptr
 2539 #define __IProfferService_INTERFACE_DEFINED__
 2540 extern IID_IProfferService as const GUID
 2541 type IProfferService as IProfferService_
 2542 
 2543 type IProfferServiceVtbl
 2544     QueryInterface as function(byval This as IProfferService ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2545     AddRef as function(byval This as IProfferService ptr) as ULONG
 2546     Release as function(byval This as IProfferService ptr) as ULONG
 2547     ProfferService as function(byval This as IProfferService ptr, byval guidService as const GUID const ptr, byval psp as IServiceProvider ptr, byval pdwCookie as DWORD ptr) as HRESULT
 2548     RevokeService as function(byval This as IProfferService ptr, byval dwCookie as DWORD) as HRESULT
 2549 end type
 2550 
 2551 type IProfferService_
 2552     lpVtbl as IProfferServiceVtbl ptr
 2553 end type
 2554 
 2555 #define IProfferService_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2556 #define IProfferService_AddRef(This) (This)->lpVtbl->AddRef(This)
 2557 #define IProfferService_Release(This) (This)->lpVtbl->Release(This)
 2558 #define IProfferService_ProfferService(This, guidService, psp, pdwCookie) (This)->lpVtbl->ProfferService(This, guidService, psp, pdwCookie)
 2559 #define IProfferService_RevokeService(This, dwCookie) (This)->lpVtbl->RevokeService(This, dwCookie)
 2560 
 2561 declare function IProfferService_ProfferService_Proxy(byval This as IProfferService ptr, byval guidService as const GUID const ptr, byval psp as IServiceProvider ptr, byval pdwCookie as DWORD ptr) as HRESULT
 2562 declare sub IProfferService_ProfferService_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2563 declare function IProfferService_RevokeService_Proxy(byval This as IProfferService ptr, byval dwCookie as DWORD) as HRESULT
 2564 declare sub IProfferService_RevokeService_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2565 extern SID_SProfferService alias "IID_IProfferService" as const GUID
 2566 
 2567 #define STR_DONT_RESOLVE_LINK wstr("Don't Resolve Link")
 2568 #define STR_GET_ASYNC_HANDLER wstr("GetAsyncHandler")
 2569 #define __IShellItem_INTERFACE_DEFINED__
 2570 
 2571 type _SIGDN as long
 2572 enum
 2573     SIGDN_NORMALDISPLAY = &h0
 2574     SIGDN_PARENTRELATIVEPARSING = clng(&h80018001)
 2575     SIGDN_DESKTOPABSOLUTEPARSING = clng(&h80028000)
 2576     SIGDN_PARENTRELATIVEEDITING = clng(&h80031001)
 2577     SIGDN_DESKTOPABSOLUTEEDITING = clng(&h8004c000)
 2578     SIGDN_FILESYSPATH = clng(&h80058000)
 2579     SIGDN_URL = clng(&h80068000)
 2580     SIGDN_PARENTRELATIVEFORADDRESSBAR = clng(&h8007c001)
 2581     SIGDN_PARENTRELATIVE = clng(&h80080001)
 2582     SIGDN_PARENTRELATIVEFORUI = clng(&h80094001)
 2583 end enum
 2584 
 2585 type SIGDN as _SIGDN
 2586 
 2587 type _SICHINTF as long
 2588 enum
 2589     SICHINT_DISPLAY = &h0
 2590     SICHINT_ALLFIELDS = clng(&h80000000)
 2591     SICHINT_CANONICAL = &h10000000
 2592     SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL = &h20000000
 2593 end enum
 2594 
 2595 type SICHINTF as DWORD
 2596 extern IID_IShellItem as const GUID
 2597 
 2598 #if _WIN32_WINNT <= &h0600
 2599     type IShellItem as IShellItem_
 2600 #endif
 2601 
 2602 type IShellItemVtbl
 2603     QueryInterface as function(byval This as IShellItem ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2604     AddRef as function(byval This as IShellItem ptr) as ULONG
 2605     Release as function(byval This as IShellItem ptr) as ULONG
 2606     BindToHandler as function(byval This as IShellItem ptr, byval pbc as IBindCtx ptr, byval bhid as const GUID const ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2607     GetParent as function(byval This as IShellItem ptr, byval ppsi as IShellItem ptr ptr) as HRESULT
 2608     GetDisplayName as function(byval This as IShellItem ptr, byval sigdnName as SIGDN, byval ppszName as LPWSTR ptr) as HRESULT
 2609     GetAttributes as function(byval This as IShellItem ptr, byval sfgaoMask as SFGAOF, byval psfgaoAttribs as SFGAOF ptr) as HRESULT
 2610     Compare as function(byval This as IShellItem ptr, byval psi as IShellItem ptr, byval hint as SICHINTF, byval piOrder as long ptr) as HRESULT
 2611 end type
 2612 
 2613 type IShellItem_
 2614     lpVtbl as IShellItemVtbl ptr
 2615 end type
 2616 
 2617 #define IShellItem_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2618 #define IShellItem_AddRef(This) (This)->lpVtbl->AddRef(This)
 2619 #define IShellItem_Release(This) (This)->lpVtbl->Release(This)
 2620 #define IShellItem_BindToHandler(This, pbc, bhid, riid, ppv) (This)->lpVtbl->BindToHandler(This, pbc, bhid, riid, ppv)
 2621 #define IShellItem_GetParent(This, ppsi) (This)->lpVtbl->GetParent(This, ppsi)
 2622 #define IShellItem_GetDisplayName(This, sigdnName, ppszName) (This)->lpVtbl->GetDisplayName(This, sigdnName, ppszName)
 2623 #define IShellItem_GetAttributes(This, sfgaoMask, psfgaoAttribs) (This)->lpVtbl->GetAttributes(This, sfgaoMask, psfgaoAttribs)
 2624 #define IShellItem_Compare(This, psi, hint, piOrder) (This)->lpVtbl->Compare(This, psi, hint, piOrder)
 2625 
 2626 declare function IShellItem_BindToHandler_Proxy(byval This as IShellItem ptr, byval pbc as IBindCtx ptr, byval bhid as const GUID const ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2627 declare sub IShellItem_BindToHandler_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2628 declare function IShellItem_GetParent_Proxy(byval This as IShellItem ptr, byval ppsi as IShellItem ptr ptr) as HRESULT
 2629 declare sub IShellItem_GetParent_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2630 declare function IShellItem_GetDisplayName_Proxy(byval This as IShellItem ptr, byval sigdnName as SIGDN, byval ppszName as LPWSTR ptr) as HRESULT
 2631 declare sub IShellItem_GetDisplayName_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2632 declare function IShellItem_GetAttributes_Proxy(byval This as IShellItem ptr, byval sfgaoMask as SFGAOF, byval psfgaoAttribs as SFGAOF ptr) as HRESULT
 2633 declare sub IShellItem_GetAttributes_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2634 declare function IShellItem_Compare_Proxy(byval This as IShellItem ptr, byval psi as IShellItem ptr, byval hint as SICHINTF, byval piOrder as long ptr) as HRESULT
 2635 declare sub IShellItem_Compare_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2636 declare function SHSimpleIDListFromPath(byval pszPath as PCWSTR) as LPITEMIDLIST
 2637 
 2638 #if _WIN32_WINNT >= &h0600
 2639     declare function SHCreateItemFromIDList(byval pidl as LPCITEMIDLIST, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2640     declare function SHCreateItemFromParsingName(byval pszPath as PCWSTR, byval pbc as IBindCtx ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2641     declare function SHCreateItemWithParent(byval pidlParent as LPCITEMIDLIST, byval psfParent as IShellFolder ptr, byval pidl as LPCITEMIDLIST, byval riid as const IID const ptr, byval ppvItem as any ptr ptr) as HRESULT
 2642     declare function SHCreateItemFromRelativeName(byval psiParent as IShellItem ptr, byval pszName as PCWSTR, byval pbc as IBindCtx ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2643     declare function SHCreateItemInKnownFolder(byval kfid as const KNOWNFOLDERID const ptr, byval dwKFFlags as DWORD, byval pszItem as PCWSTR, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2644     declare function SHGetIDListFromObject(byval punk as IUnknown ptr, byval ppidl as LPITEMIDLIST ptr) as HRESULT
 2645     declare function SHGetItemFromObject(byval punk as IUnknown ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2646     declare function SHGetPropertyStoreFromIDList(byval pidl as LPCITEMIDLIST, byval flags as GETPROPERTYSTOREFLAGS, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2647     declare function SHGetPropertyStoreFromParsingName(byval pszPath as PCWSTR, byval pbc as IBindCtx ptr, byval flags as GETPROPERTYSTOREFLAGS, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2648     declare function SHGetNameFromIDList(byval pidl as LPCITEMIDLIST, byval sigdnName as SIGDN, byval ppszName as PWSTR ptr) as HRESULT
 2649 #endif
 2650 
 2651 #if _WIN32_WINNT >= &h0601
 2652     type DATAOBJ_GET_ITEM_FLAGS as long
 2653     enum
 2654         DOGIF_DEFAULT = &h0
 2655         DOGIF_TRAVERSE_LINK = &h1
 2656         DOGIF_NO_HDROP = &h2
 2657         DOGIF_NO_URL = &h4
 2658         DOGIF_ONLY_IF_ONE = &h8
 2659     end enum
 2660 
 2661     declare function SHGetItemFromDataObject(byval pdtobj as IDataObject ptr, byval dwFlags as DATAOBJ_GET_ITEM_FLAGS, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2662 #endif
 2663 
 2664 #define STR_GPS_HANDLERPROPERTIESONLY wstr("GPS_HANDLERPROPERTIESONLY")
 2665 #define STR_GPS_FASTPROPERTIESONLY wstr("GPS_FASTPROPERTIESONLY")
 2666 #define STR_GPS_OPENSLOWITEM wstr("GPS_OPENSLOWITEM")
 2667 #define STR_GPS_DELAYCREATION wstr("GPS_DELAYCREATION")
 2668 #define STR_GPS_BESTEFFORT wstr("GPS_BESTEFFORT")
 2669 #define STR_GPS_NO_OPLOCK wstr("GPS_NO_OPLOCK")
 2670 #define __IShellItem2_INTERFACE_DEFINED__
 2671 extern IID_IShellItem2 as const GUID
 2672 type IShellItem2 as IShellItem2_
 2673 
 2674 type IShellItem2Vtbl
 2675     QueryInterface as function(byval This as IShellItem2 ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2676     AddRef as function(byval This as IShellItem2 ptr) as ULONG
 2677     Release as function(byval This as IShellItem2 ptr) as ULONG
 2678     BindToHandler as function(byval This as IShellItem2 ptr, byval pbc as IBindCtx ptr, byval bhid as const GUID const ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2679     GetParent as function(byval This as IShellItem2 ptr, byval ppsi as IShellItem ptr ptr) as HRESULT
 2680     GetDisplayName as function(byval This as IShellItem2 ptr, byval sigdnName as SIGDN, byval ppszName as LPWSTR ptr) as HRESULT
 2681     GetAttributes as function(byval This as IShellItem2 ptr, byval sfgaoMask as SFGAOF, byval psfgaoAttribs as SFGAOF ptr) as HRESULT
 2682     Compare as function(byval This as IShellItem2 ptr, byval psi as IShellItem ptr, byval hint as SICHINTF, byval piOrder as long ptr) as HRESULT
 2683     GetPropertyStore as function(byval This as IShellItem2 ptr, byval flags as GETPROPERTYSTOREFLAGS, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2684     GetPropertyStoreWithCreateObject as function(byval This as IShellItem2 ptr, byval flags as GETPROPERTYSTOREFLAGS, byval punkCreateObject as IUnknown ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2685     GetPropertyStoreForKeys as function(byval This as IShellItem2 ptr, byval rgKeys as const PROPERTYKEY ptr, byval cKeys as UINT, byval flags as GETPROPERTYSTOREFLAGS, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2686     GetPropertyDescriptionList as function(byval This as IShellItem2 ptr, byval keyType as const PROPERTYKEY const ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2687     Update as function(byval This as IShellItem2 ptr, byval pbc as IBindCtx ptr) as HRESULT
 2688     GetProperty as function(byval This as IShellItem2 ptr, byval key as const PROPERTYKEY const ptr, byval ppropvar as PROPVARIANT ptr) as HRESULT
 2689     GetCLSID as function(byval This as IShellItem2 ptr, byval key as const PROPERTYKEY const ptr, byval pclsid as CLSID ptr) as HRESULT
 2690     GetFileTime as function(byval This as IShellItem2 ptr, byval key as const PROPERTYKEY const ptr, byval pft as FILETIME ptr) as HRESULT
 2691     GetInt32 as function(byval This as IShellItem2 ptr, byval key as const PROPERTYKEY const ptr, byval pi as long ptr) as HRESULT
 2692     GetString as function(byval This as IShellItem2 ptr, byval key as const PROPERTYKEY const ptr, byval ppsz as LPWSTR ptr) as HRESULT
 2693     GetUInt32 as function(byval This as IShellItem2 ptr, byval key as const PROPERTYKEY const ptr, byval pui as ULONG ptr) as HRESULT
 2694     GetUInt64 as function(byval This as IShellItem2 ptr, byval key as const PROPERTYKEY const ptr, byval pull as ULONGLONG ptr) as HRESULT
 2695     GetBool as function(byval This as IShellItem2 ptr, byval key as const PROPERTYKEY const ptr, byval pf as WINBOOL ptr) as HRESULT
 2696 end type
 2697 
 2698 type IShellItem2_
 2699     lpVtbl as IShellItem2Vtbl ptr
 2700 end type
 2701 
 2702 #define IShellItem2_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2703 #define IShellItem2_AddRef(This) (This)->lpVtbl->AddRef(This)
 2704 #define IShellItem2_Release(This) (This)->lpVtbl->Release(This)
 2705 #define IShellItem2_BindToHandler(This, pbc, bhid, riid, ppv) (This)->lpVtbl->BindToHandler(This, pbc, bhid, riid, ppv)
 2706 #define IShellItem2_GetParent(This, ppsi) (This)->lpVtbl->GetParent(This, ppsi)
 2707 #define IShellItem2_GetDisplayName(This, sigdnName, ppszName) (This)->lpVtbl->GetDisplayName(This, sigdnName, ppszName)
 2708 #define IShellItem2_GetAttributes(This, sfgaoMask, psfgaoAttribs) (This)->lpVtbl->GetAttributes(This, sfgaoMask, psfgaoAttribs)
 2709 #define IShellItem2_Compare(This, psi, hint, piOrder) (This)->lpVtbl->Compare(This, psi, hint, piOrder)
 2710 #define IShellItem2_GetPropertyStore(This, flags, riid, ppv) (This)->lpVtbl->GetPropertyStore(This, flags, riid, ppv)
 2711 #define IShellItem2_GetPropertyStoreWithCreateObject(This, flags, punkCreateObject, riid, ppv) (This)->lpVtbl->GetPropertyStoreWithCreateObject(This, flags, punkCreateObject, riid, ppv)
 2712 #define IShellItem2_GetPropertyStoreForKeys(This, rgKeys, cKeys, flags, riid, ppv) (This)->lpVtbl->GetPropertyStoreForKeys(This, rgKeys, cKeys, flags, riid, ppv)
 2713 #define IShellItem2_GetPropertyDescriptionList(This, keyType, riid, ppv) (This)->lpVtbl->GetPropertyDescriptionList(This, keyType, riid, ppv)
 2714 #define IShellItem2_Update(This, pbc) (This)->lpVtbl->Update(This, pbc)
 2715 #define IShellItem2_GetProperty(This, key, ppropvar) (This)->lpVtbl->GetProperty(This, key, ppropvar)
 2716 #define IShellItem2_GetCLSID(This, key, pclsid) (This)->lpVtbl->GetCLSID(This, key, pclsid)
 2717 #define IShellItem2_GetFileTime(This, key, pft) (This)->lpVtbl->GetFileTime(This, key, pft)
 2718 #define IShellItem2_GetInt32(This, key, pi) (This)->lpVtbl->GetInt32(This, key, pi)
 2719 #define IShellItem2_GetString(This, key, ppsz) (This)->lpVtbl->GetString(This, key, ppsz)
 2720 #define IShellItem2_GetUInt32(This, key, pui) (This)->lpVtbl->GetUInt32(This, key, pui)
 2721 #define IShellItem2_GetUInt64(This, key, pull) (This)->lpVtbl->GetUInt64(This, key, pull)
 2722 #define IShellItem2_GetBool(This, key, pf) (This)->lpVtbl->GetBool(This, key, pf)
 2723 
 2724 declare function IShellItem2_GetPropertyStore_Proxy(byval This as IShellItem2 ptr, byval flags as GETPROPERTYSTOREFLAGS, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2725 declare sub IShellItem2_GetPropertyStore_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2726 declare function IShellItem2_GetPropertyStoreWithCreateObject_Proxy(byval This as IShellItem2 ptr, byval flags as GETPROPERTYSTOREFLAGS, byval punkCreateObject as IUnknown ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2727 declare sub IShellItem2_GetPropertyStoreWithCreateObject_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2728 declare function IShellItem2_GetPropertyStoreForKeys_Proxy(byval This as IShellItem2 ptr, byval rgKeys as const PROPERTYKEY ptr, byval cKeys as UINT, byval flags as GETPROPERTYSTOREFLAGS, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2729 declare sub IShellItem2_GetPropertyStoreForKeys_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2730 declare function IShellItem2_GetPropertyDescriptionList_Proxy(byval This as IShellItem2 ptr, byval keyType as const PROPERTYKEY const ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2731 declare sub IShellItem2_GetPropertyDescriptionList_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2732 declare function IShellItem2_Update_Proxy(byval This as IShellItem2 ptr, byval pbc as IBindCtx ptr) as HRESULT
 2733 declare sub IShellItem2_Update_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2734 declare function IShellItem2_GetProperty_Proxy(byval This as IShellItem2 ptr, byval key as const PROPERTYKEY const ptr, byval ppropvar as PROPVARIANT ptr) as HRESULT
 2735 declare sub IShellItem2_GetProperty_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2736 declare function IShellItem2_GetCLSID_Proxy(byval This as IShellItem2 ptr, byval key as const PROPERTYKEY const ptr, byval pclsid as CLSID ptr) as HRESULT
 2737 declare sub IShellItem2_GetCLSID_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2738 declare function IShellItem2_GetFileTime_Proxy(byval This as IShellItem2 ptr, byval key as const PROPERTYKEY const ptr, byval pft as FILETIME ptr) as HRESULT
 2739 declare sub IShellItem2_GetFileTime_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2740 declare function IShellItem2_GetInt32_Proxy(byval This as IShellItem2 ptr, byval key as const PROPERTYKEY const ptr, byval pi as long ptr) as HRESULT
 2741 declare sub IShellItem2_GetInt32_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2742 declare function IShellItem2_GetString_Proxy(byval This as IShellItem2 ptr, byval key as const PROPERTYKEY const ptr, byval ppsz as LPWSTR ptr) as HRESULT
 2743 declare sub IShellItem2_GetString_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2744 declare function IShellItem2_GetUInt32_Proxy(byval This as IShellItem2 ptr, byval key as const PROPERTYKEY const ptr, byval pui as ULONG ptr) as HRESULT
 2745 declare sub IShellItem2_GetUInt32_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2746 declare function IShellItem2_GetUInt64_Proxy(byval This as IShellItem2 ptr, byval key as const PROPERTYKEY const ptr, byval pull as ULONGLONG ptr) as HRESULT
 2747 declare sub IShellItem2_GetUInt64_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2748 declare function IShellItem2_GetBool_Proxy(byval This as IShellItem2 ptr, byval key as const PROPERTYKEY const ptr, byval pf as WINBOOL ptr) as HRESULT
 2749 declare sub IShellItem2_GetBool_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2750 
 2751 type _SIIGBF as long
 2752 enum
 2753     SIIGBF_RESIZETOFIT = &h0
 2754     SIIGBF_BIGGERSIZEOK = &h1
 2755     SIIGBF_MEMORYONLY = &h2
 2756     SIIGBF_ICONONLY = &h4
 2757     SIIGBF_THUMBNAILONLY = &h8
 2758     SIIGBF_INCACHEONLY = &h10
 2759     SIIGBF_CROPTOSQUARE = &h20
 2760     SIIGBF_WIDETHUMBNAILS = &h40
 2761     SIIGBF_ICONBACKGROUND = &h80
 2762     SIIGBF_SCALEUP = &h100
 2763 end enum
 2764 
 2765 type SIIGBF as long
 2766 #define __IShellItemImageFactory_INTERFACE_DEFINED__
 2767 extern IID_IShellItemImageFactory as const GUID
 2768 type IShellItemImageFactory as IShellItemImageFactory_
 2769 
 2770 type IShellItemImageFactoryVtbl
 2771     QueryInterface as function(byval This as IShellItemImageFactory ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2772     AddRef as function(byval This as IShellItemImageFactory ptr) as ULONG
 2773     Release as function(byval This as IShellItemImageFactory ptr) as ULONG
 2774     GetImage as function(byval This as IShellItemImageFactory ptr, byval size as SIZE, byval flags as SIIGBF, byval phbm as HBITMAP ptr) as HRESULT
 2775 end type
 2776 
 2777 type IShellItemImageFactory_
 2778     lpVtbl as IShellItemImageFactoryVtbl ptr
 2779 end type
 2780 
 2781 #define IShellItemImageFactory_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2782 #define IShellItemImageFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
 2783 #define IShellItemImageFactory_Release(This) (This)->lpVtbl->Release(This)
 2784 #define IShellItemImageFactory_GetImage(This, size, flags, phbm) (This)->lpVtbl->GetImage(This, size, flags, phbm)
 2785 declare function IShellItemImageFactory_GetImage_Proxy(byval This as IShellItemImageFactory ptr, byval size as SIZE, byval flags as SIIGBF, byval phbm as HBITMAP ptr) as HRESULT
 2786 declare sub IShellItemImageFactory_GetImage_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2787 #define __IUserAccountChangeCallback_INTERFACE_DEFINED__
 2788 extern IID_IUserAccountChangeCallback as const GUID
 2789 type IUserAccountChangeCallback as IUserAccountChangeCallback_
 2790 
 2791 type IUserAccountChangeCallbackVtbl
 2792     QueryInterface as function(byval This as IUserAccountChangeCallback ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2793     AddRef as function(byval This as IUserAccountChangeCallback ptr) as ULONG
 2794     Release as function(byval This as IUserAccountChangeCallback ptr) as ULONG
 2795     OnPictureChange as function(byval This as IUserAccountChangeCallback ptr, byval pszUserName as LPCWSTR) as HRESULT
 2796 end type
 2797 
 2798 type IUserAccountChangeCallback_
 2799     lpVtbl as IUserAccountChangeCallbackVtbl ptr
 2800 end type
 2801 
 2802 #define IUserAccountChangeCallback_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2803 #define IUserAccountChangeCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
 2804 #define IUserAccountChangeCallback_Release(This) (This)->lpVtbl->Release(This)
 2805 #define IUserAccountChangeCallback_OnPictureChange(This, pszUserName) (This)->lpVtbl->OnPictureChange(This, pszUserName)
 2806 declare function IUserAccountChangeCallback_OnPictureChange_Proxy(byval This as IUserAccountChangeCallback ptr, byval pszUserName as LPCWSTR) as HRESULT
 2807 declare sub IUserAccountChangeCallback_OnPictureChange_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2808 #define __IEnumShellItems_INTERFACE_DEFINED__
 2809 extern IID_IEnumShellItems as const GUID
 2810 type IEnumShellItems as IEnumShellItems_
 2811 
 2812 type IEnumShellItemsVtbl
 2813     QueryInterface as function(byval This as IEnumShellItems ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2814     AddRef as function(byval This as IEnumShellItems ptr) as ULONG
 2815     Release as function(byval This as IEnumShellItems ptr) as ULONG
 2816     Next as function(byval This as IEnumShellItems ptr, byval celt as ULONG, byval rgelt as IShellItem ptr ptr, byval pceltFetched as ULONG ptr) as HRESULT
 2817     Skip as function(byval This as IEnumShellItems ptr, byval celt as ULONG) as HRESULT
 2818     Reset as function(byval This as IEnumShellItems ptr) as HRESULT
 2819     Clone as function(byval This as IEnumShellItems ptr, byval ppenum as IEnumShellItems ptr ptr) as HRESULT
 2820 end type
 2821 
 2822 type IEnumShellItems_
 2823     lpVtbl as IEnumShellItemsVtbl ptr
 2824 end type
 2825 
 2826 #define IEnumShellItems_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2827 #define IEnumShellItems_AddRef(This) (This)->lpVtbl->AddRef(This)
 2828 #define IEnumShellItems_Release(This) (This)->lpVtbl->Release(This)
 2829 #define IEnumShellItems_Next(This, celt, rgelt, pceltFetched) (This)->lpVtbl->Next(This, celt, rgelt, pceltFetched)
 2830 #define IEnumShellItems_Skip(This, celt) (This)->lpVtbl->Skip(This, celt)
 2831 #define IEnumShellItems_Reset(This) (This)->lpVtbl->Reset(This)
 2832 #define IEnumShellItems_Clone(This, ppenum) (This)->lpVtbl->Clone(This, ppenum)
 2833 
 2834 declare function IEnumShellItems_RemoteNext_Proxy(byval This as IEnumShellItems ptr, byval celt as ULONG, byval rgelt as IShellItem ptr ptr, byval pceltFetched as ULONG ptr) as HRESULT
 2835 declare sub IEnumShellItems_RemoteNext_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2836 declare function IEnumShellItems_Skip_Proxy(byval This as IEnumShellItems ptr, byval celt as ULONG) as HRESULT
 2837 declare sub IEnumShellItems_Skip_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2838 declare function IEnumShellItems_Reset_Proxy(byval This as IEnumShellItems ptr) as HRESULT
 2839 declare sub IEnumShellItems_Reset_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2840 declare function IEnumShellItems_Clone_Proxy(byval This as IEnumShellItems ptr, byval ppenum as IEnumShellItems ptr ptr) as HRESULT
 2841 declare sub IEnumShellItems_Clone_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2842 declare function IEnumShellItems_Next_Proxy(byval This as IEnumShellItems ptr, byval celt as ULONG, byval rgelt as IShellItem ptr ptr, byval pceltFetched as ULONG ptr) as HRESULT
 2843 declare function IEnumShellItems_Next_Stub(byval This as IEnumShellItems ptr, byval celt as ULONG, byval rgelt as IShellItem ptr ptr, byval pceltFetched as ULONG ptr) as HRESULT
 2844 type STGTRANSCONFIRMATION as GUID
 2845 type LPSTGTRANSCONFIRMATION as GUID ptr
 2846 
 2847 type STGOP as long
 2848 enum
 2849     STGOP_MOVE = 1
 2850     STGOP_COPY = 2
 2851     STGOP_SYNC = 3
 2852     STGOP_REMOVE = 5
 2853     STGOP_RENAME = 6
 2854     STGOP_APPLYPROPERTIES = 8
 2855     STGOP_NEW = 10
 2856 end enum
 2857 
 2858 type _TRANSFER_SOURCE_FLAGS as long
 2859 enum
 2860     TSF_NORMAL = &h0
 2861     TSF_FAIL_EXIST = &h0
 2862     TSF_RENAME_EXIST = &h1
 2863     TSF_OVERWRITE_EXIST = &h2
 2864     TSF_ALLOW_DECRYPTION = &h4
 2865     TSF_NO_SECURITY = &h8
 2866     TSF_COPY_CREATION_TIME = &h10
 2867     TSF_COPY_WRITE_TIME = &h20
 2868     TSF_USE_FULL_ACCESS = &h40
 2869     TSF_DELETE_RECYCLE_IF_POSSIBLE = &h80
 2870     TSF_COPY_HARD_LINK = &h100
 2871     TSF_COPY_LOCALIZED_NAME = &h200
 2872     TSF_MOVE_AS_COPY_DELETE = &h400
 2873     TSF_SUSPEND_SHELLEVENTS = &h800
 2874 end enum
 2875 
 2876 type TRANSFER_SOURCE_FLAGS as DWORD
 2877 
 2878 type ITransferAdviseSink as ITransferAdviseSink_
 2879 
 2880 #if _WIN32_WINNT >= &h0600
 2881     #define __ITransferAdviseSink_INTERFACE_DEFINED__
 2882 
 2883     type _TRANSFER_ADVISE_STATE as long
 2884     enum
 2885         TS_NONE = &h0
 2886         TS_PERFORMING = &h1
 2887         TS_PREPARING = &h2
 2888         TS_INDETERMINATE = &h4
 2889     end enum
 2890 
 2891     type TRANSFER_ADVISE_STATE as DWORD
 2892     extern IID_ITransferAdviseSink as const GUID
 2893 
 2894     type ITransferAdviseSinkVtbl
 2895         QueryInterface as function(byval This as ITransferAdviseSink ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2896         AddRef as function(byval This as ITransferAdviseSink ptr) as ULONG
 2897         Release as function(byval This as ITransferAdviseSink ptr) as ULONG
 2898         UpdateProgress as function(byval This as ITransferAdviseSink ptr, byval ullSizeCurrent as ULONGLONG, byval ullSizeTotal as ULONGLONG, byval nFilesCurrent as long, byval nFilesTotal as long, byval nFoldersCurrent as long, byval nFoldersTotal as long) as HRESULT
 2899         UpdateTransferState as function(byval This as ITransferAdviseSink ptr, byval ts as TRANSFER_ADVISE_STATE) as HRESULT
 2900         ConfirmOverwrite as function(byval This as ITransferAdviseSink ptr, byval psiSource as IShellItem ptr, byval psiDestParent as IShellItem ptr, byval pszName as LPCWSTR) as HRESULT
 2901         ConfirmEncryptionLoss as function(byval This as ITransferAdviseSink ptr, byval psiSource as IShellItem ptr) as HRESULT
 2902         FileFailure as function(byval This as ITransferAdviseSink ptr, byval psi as IShellItem ptr, byval pszItem as LPCWSTR, byval hrError as HRESULT, byval pszRename as LPWSTR, byval cchRename as ULONG) as HRESULT
 2903         SubStreamFailure as function(byval This as ITransferAdviseSink ptr, byval psi as IShellItem ptr, byval pszStreamName as LPCWSTR, byval hrError as HRESULT) as HRESULT
 2904         PropertyFailure as function(byval This as ITransferAdviseSink ptr, byval psi as IShellItem ptr, byval pkey as const PROPERTYKEY ptr, byval hrError as HRESULT) as HRESULT
 2905     end type
 2906 
 2907     type ITransferAdviseSink_
 2908         lpVtbl as ITransferAdviseSinkVtbl ptr
 2909     end type
 2910 
 2911     #define ITransferAdviseSink_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2912     #define ITransferAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
 2913     #define ITransferAdviseSink_Release(This) (This)->lpVtbl->Release(This)
 2914     #define ITransferAdviseSink_UpdateProgress(This, ullSizeCurrent, ullSizeTotal, nFilesCurrent, nFilesTotal, nFoldersCurrent, nFoldersTotal) (This)->lpVtbl->UpdateProgress(This, ullSizeCurrent, ullSizeTotal, nFilesCurrent, nFilesTotal, nFoldersCurrent, nFoldersTotal)
 2915     #define ITransferAdviseSink_UpdateTransferState(This, ts) (This)->lpVtbl->UpdateTransferState(This, ts)
 2916     #define ITransferAdviseSink_ConfirmOverwrite(This, psiSource, psiDestParent, pszName) (This)->lpVtbl->ConfirmOverwrite(This, psiSource, psiDestParent, pszName)
 2917     #define ITransferAdviseSink_ConfirmEncryptionLoss(This, psiSource) (This)->lpVtbl->ConfirmEncryptionLoss(This, psiSource)
 2918     #define ITransferAdviseSink_FileFailure(This, psi, pszItem, hrError, pszRename, cchRename) (This)->lpVtbl->FileFailure(This, psi, pszItem, hrError, pszRename, cchRename)
 2919     #define ITransferAdviseSink_SubStreamFailure(This, psi, pszStreamName, hrError) (This)->lpVtbl->SubStreamFailure(This, psi, pszStreamName, hrError)
 2920     #define ITransferAdviseSink_PropertyFailure(This, psi, pkey, hrError) (This)->lpVtbl->PropertyFailure(This, psi, pkey, hrError)
 2921 
 2922     declare function ITransferAdviseSink_UpdateProgress_Proxy(byval This as ITransferAdviseSink ptr, byval ullSizeCurrent as ULONGLONG, byval ullSizeTotal as ULONGLONG, byval nFilesCurrent as long, byval nFilesTotal as long, byval nFoldersCurrent as long, byval nFoldersTotal as long) as HRESULT
 2923     declare sub ITransferAdviseSink_UpdateProgress_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2924     declare function ITransferAdviseSink_UpdateTransferState_Proxy(byval This as ITransferAdviseSink ptr, byval ts as TRANSFER_ADVISE_STATE) as HRESULT
 2925     declare sub ITransferAdviseSink_UpdateTransferState_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2926     declare function ITransferAdviseSink_ConfirmOverwrite_Proxy(byval This as ITransferAdviseSink ptr, byval psiSource as IShellItem ptr, byval psiDestParent as IShellItem ptr, byval pszName as LPCWSTR) as HRESULT
 2927     declare sub ITransferAdviseSink_ConfirmOverwrite_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2928     declare function ITransferAdviseSink_ConfirmEncryptionLoss_Proxy(byval This as ITransferAdviseSink ptr, byval psiSource as IShellItem ptr) as HRESULT
 2929     declare sub ITransferAdviseSink_ConfirmEncryptionLoss_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2930     declare function ITransferAdviseSink_FileFailure_Proxy(byval This as ITransferAdviseSink ptr, byval psi as IShellItem ptr, byval pszItem as LPCWSTR, byval hrError as HRESULT, byval pszRename as LPWSTR, byval cchRename as ULONG) as HRESULT
 2931     declare sub ITransferAdviseSink_FileFailure_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2932     declare function ITransferAdviseSink_SubStreamFailure_Proxy(byval This as ITransferAdviseSink ptr, byval psi as IShellItem ptr, byval pszStreamName as LPCWSTR, byval hrError as HRESULT) as HRESULT
 2933     declare sub ITransferAdviseSink_SubStreamFailure_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2934     declare function ITransferAdviseSink_PropertyFailure_Proxy(byval This as ITransferAdviseSink ptr, byval psi as IShellItem ptr, byval pkey as const PROPERTYKEY ptr, byval hrError as HRESULT) as HRESULT
 2935     declare sub ITransferAdviseSink_PropertyFailure_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2936     #define __ITransferSource_INTERFACE_DEFINED__
 2937     extern IID_ITransferSource as const GUID
 2938     type ITransferSource as ITransferSource_
 2939 
 2940     type ITransferSourceVtbl
 2941         QueryInterface as function(byval This as ITransferSource ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 2942         AddRef as function(byval This as ITransferSource ptr) as ULONG
 2943         Release as function(byval This as ITransferSource ptr) as ULONG
 2944         Advise as function(byval This as ITransferSource ptr, byval psink as ITransferAdviseSink ptr, byval pdwCookie as DWORD ptr) as HRESULT
 2945         Unadvise as function(byval This as ITransferSource ptr, byval dwCookie as DWORD) as HRESULT
 2946         SetProperties as function(byval This as ITransferSource ptr, byval pproparray as IPropertyChangeArray ptr) as HRESULT
 2947         OpenItem as function(byval This as ITransferSource ptr, byval psi as IShellItem ptr, byval flags as TRANSFER_SOURCE_FLAGS, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2948         MoveItem as function(byval This as ITransferSource ptr, byval psi as IShellItem ptr, byval psiParentDst as IShellItem ptr, byval pszNameDst as LPCWSTR, byval flags as TRANSFER_SOURCE_FLAGS, byval ppsiNew as IShellItem ptr ptr) as HRESULT
 2949         RecycleItem as function(byval This as ITransferSource ptr, byval psiSource as IShellItem ptr, byval psiParentDest as IShellItem ptr, byval flags as TRANSFER_SOURCE_FLAGS, byval ppsiNewDest as IShellItem ptr ptr) as HRESULT
 2950         RemoveItem as function(byval This as ITransferSource ptr, byval psiSource as IShellItem ptr, byval flags as TRANSFER_SOURCE_FLAGS) as HRESULT
 2951         RenameItem as function(byval This as ITransferSource ptr, byval psiSource as IShellItem ptr, byval pszNewName as LPCWSTR, byval flags as TRANSFER_SOURCE_FLAGS, byval ppsiNewDest as IShellItem ptr ptr) as HRESULT
 2952         LinkItem as function(byval This as ITransferSource ptr, byval psiSource as IShellItem ptr, byval psiParentDest as IShellItem ptr, byval pszNewName as LPCWSTR, byval flags as TRANSFER_SOURCE_FLAGS, byval ppsiNewDest as IShellItem ptr ptr) as HRESULT
 2953         ApplyPropertiesToItem as function(byval This as ITransferSource ptr, byval psiSource as IShellItem ptr, byval ppsiNew as IShellItem ptr ptr) as HRESULT
 2954         GetDefaultDestinationName as function(byval This as ITransferSource ptr, byval psiSource as IShellItem ptr, byval psiParentDest as IShellItem ptr, byval ppszDestinationName as LPWSTR ptr) as HRESULT
 2955         EnterFolder as function(byval This as ITransferSource ptr, byval psiChildFolderDest as IShellItem ptr) as HRESULT
 2956         LeaveFolder as function(byval This as ITransferSource ptr, byval psiChildFolderDest as IShellItem ptr) as HRESULT
 2957     end type
 2958 
 2959     type ITransferSource_
 2960         lpVtbl as ITransferSourceVtbl ptr
 2961     end type
 2962 
 2963     #define ITransferSource_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 2964     #define ITransferSource_AddRef(This) (This)->lpVtbl->AddRef(This)
 2965     #define ITransferSource_Release(This) (This)->lpVtbl->Release(This)
 2966     #define ITransferSource_Advise(This, psink, pdwCookie) (This)->lpVtbl->Advise(This, psink, pdwCookie)
 2967     #define ITransferSource_Unadvise(This, dwCookie) (This)->lpVtbl->Unadvise(This, dwCookie)
 2968     #define ITransferSource_SetProperties(This, pproparray) (This)->lpVtbl->SetProperties(This, pproparray)
 2969     #define ITransferSource_OpenItem(This, psi, flags, riid, ppv) (This)->lpVtbl->OpenItem(This, psi, flags, riid, ppv)
 2970     #define ITransferSource_MoveItem(This, psi, psiParentDst, pszNameDst, flags, ppsiNew) (This)->lpVtbl->MoveItem(This, psi, psiParentDst, pszNameDst, flags, ppsiNew)
 2971     #define ITransferSource_RecycleItem(This, psiSource, psiParentDest, flags, ppsiNewDest) (This)->lpVtbl->RecycleItem(This, psiSource, psiParentDest, flags, ppsiNewDest)
 2972     #define ITransferSource_RemoveItem(This, psiSource, flags) (This)->lpVtbl->RemoveItem(This, psiSource, flags)
 2973     #define ITransferSource_RenameItem(This, psiSource, pszNewName, flags, ppsiNewDest) (This)->lpVtbl->RenameItem(This, psiSource, pszNewName, flags, ppsiNewDest)
 2974     #define ITransferSource_LinkItem(This, psiSource, psiParentDest, pszNewName, flags, ppsiNewDest) (This)->lpVtbl->LinkItem(This, psiSource, psiParentDest, pszNewName, flags, ppsiNewDest)
 2975     #define ITransferSource_ApplyPropertiesToItem(This, psiSource, ppsiNew) (This)->lpVtbl->ApplyPropertiesToItem(This, psiSource, ppsiNew)
 2976     #define ITransferSource_GetDefaultDestinationName(This, psiSource, psiParentDest, ppszDestinationName) (This)->lpVtbl->GetDefaultDestinationName(This, psiSource, psiParentDest, ppszDestinationName)
 2977     #define ITransferSource_EnterFolder(This, psiChildFolderDest) (This)->lpVtbl->EnterFolder(This, psiChildFolderDest)
 2978     #define ITransferSource_LeaveFolder(This, psiChildFolderDest) (This)->lpVtbl->LeaveFolder(This, psiChildFolderDest)
 2979 
 2980     declare function ITransferSource_Advise_Proxy(byval This as ITransferSource ptr, byval psink as ITransferAdviseSink ptr, byval pdwCookie as DWORD ptr) as HRESULT
 2981     declare sub ITransferSource_Advise_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2982     declare function ITransferSource_Unadvise_Proxy(byval This as ITransferSource ptr, byval dwCookie as DWORD) as HRESULT
 2983     declare sub ITransferSource_Unadvise_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2984     declare function ITransferSource_SetProperties_Proxy(byval This as ITransferSource ptr, byval pproparray as IPropertyChangeArray ptr) as HRESULT
 2985     declare sub ITransferSource_SetProperties_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2986     declare function ITransferSource_OpenItem_Proxy(byval This as ITransferSource ptr, byval psi as IShellItem ptr, byval flags as TRANSFER_SOURCE_FLAGS, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 2987     declare sub ITransferSource_OpenItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2988     declare function ITransferSource_MoveItem_Proxy(byval This as ITransferSource ptr, byval psi as IShellItem ptr, byval psiParentDst as IShellItem ptr, byval pszNameDst as LPCWSTR, byval flags as TRANSFER_SOURCE_FLAGS, byval ppsiNew as IShellItem ptr ptr) as HRESULT
 2989     declare sub ITransferSource_MoveItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2990     declare function ITransferSource_RecycleItem_Proxy(byval This as ITransferSource ptr, byval psiSource as IShellItem ptr, byval psiParentDest as IShellItem ptr, byval flags as TRANSFER_SOURCE_FLAGS, byval ppsiNewDest as IShellItem ptr ptr) as HRESULT
 2991     declare sub ITransferSource_RecycleItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2992     declare function ITransferSource_RemoveItem_Proxy(byval This as ITransferSource ptr, byval psiSource as IShellItem ptr, byval flags as TRANSFER_SOURCE_FLAGS) as HRESULT
 2993     declare sub ITransferSource_RemoveItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2994     declare function ITransferSource_RenameItem_Proxy(byval This as ITransferSource ptr, byval psiSource as IShellItem ptr, byval pszNewName as LPCWSTR, byval flags as TRANSFER_SOURCE_FLAGS, byval ppsiNewDest as IShellItem ptr ptr) as HRESULT
 2995     declare sub ITransferSource_RenameItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2996     declare function ITransferSource_LinkItem_Proxy(byval This as ITransferSource ptr, byval psiSource as IShellItem ptr, byval psiParentDest as IShellItem ptr, byval pszNewName as LPCWSTR, byval flags as TRANSFER_SOURCE_FLAGS, byval ppsiNewDest as IShellItem ptr ptr) as HRESULT
 2997     declare sub ITransferSource_LinkItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 2998     declare function ITransferSource_ApplyPropertiesToItem_Proxy(byval This as ITransferSource ptr, byval psiSource as IShellItem ptr, byval ppsiNew as IShellItem ptr ptr) as HRESULT
 2999     declare sub ITransferSource_ApplyPropertiesToItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3000     declare function ITransferSource_GetDefaultDestinationName_Proxy(byval This as ITransferSource ptr, byval psiSource as IShellItem ptr, byval psiParentDest as IShellItem ptr, byval ppszDestinationName as LPWSTR ptr) as HRESULT
 3001     declare sub ITransferSource_GetDefaultDestinationName_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3002     declare function ITransferSource_EnterFolder_Proxy(byval This as ITransferSource ptr, byval psiChildFolderDest as IShellItem ptr) as HRESULT
 3003     declare sub ITransferSource_EnterFolder_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3004     declare function ITransferSource_LeaveFolder_Proxy(byval This as ITransferSource ptr, byval psiChildFolderDest as IShellItem ptr) as HRESULT
 3005     declare sub ITransferSource_LeaveFolder_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3006 #endif
 3007 
 3008 type SHELL_ITEM_RESOURCE
 3009     guidType as GUID
 3010     szName as wstring * 260
 3011 end type
 3012 
 3013 #define __IEnumResources_INTERFACE_DEFINED__
 3014 extern IID_IEnumResources as const GUID
 3015 type IEnumResources as IEnumResources_
 3016 
 3017 type IEnumResourcesVtbl
 3018     QueryInterface as function(byval This as IEnumResources ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 3019     AddRef as function(byval This as IEnumResources ptr) as ULONG
 3020     Release as function(byval This as IEnumResources ptr) as ULONG
 3021     Next as function(byval This as IEnumResources ptr, byval celt as ULONG, byval psir as SHELL_ITEM_RESOURCE ptr, byval pceltFetched as ULONG ptr) as HRESULT
 3022     Skip as function(byval This as IEnumResources ptr, byval celt as ULONG) as HRESULT
 3023     Reset as function(byval This as IEnumResources ptr) as HRESULT
 3024     Clone as function(byval This as IEnumResources ptr, byval ppenumr as IEnumResources ptr ptr) as HRESULT
 3025 end type
 3026 
 3027 type IEnumResources_
 3028     lpVtbl as IEnumResourcesVtbl ptr
 3029 end type
 3030 
 3031 #define IEnumResources_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 3032 #define IEnumResources_AddRef(This) (This)->lpVtbl->AddRef(This)
 3033 #define IEnumResources_Release(This) (This)->lpVtbl->Release(This)
 3034 #define IEnumResources_Next(This, celt, psir, pceltFetched) (This)->lpVtbl->Next(This, celt, psir, pceltFetched)
 3035 #define IEnumResources_Skip(This, celt) (This)->lpVtbl->Skip(This, celt)
 3036 #define IEnumResources_Reset(This) (This)->lpVtbl->Reset(This)
 3037 #define IEnumResources_Clone(This, ppenumr) (This)->lpVtbl->Clone(This, ppenumr)
 3038 
 3039 declare function IEnumResources_Next_Proxy(byval This as IEnumResources ptr, byval celt as ULONG, byval psir as SHELL_ITEM_RESOURCE ptr, byval pceltFetched as ULONG ptr) as HRESULT
 3040 declare sub IEnumResources_Next_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3041 declare function IEnumResources_Skip_Proxy(byval This as IEnumResources ptr, byval celt as ULONG) as HRESULT
 3042 declare sub IEnumResources_Skip_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3043 declare function IEnumResources_Reset_Proxy(byval This as IEnumResources ptr) as HRESULT
 3044 declare sub IEnumResources_Reset_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3045 declare function IEnumResources_Clone_Proxy(byval This as IEnumResources ptr, byval ppenumr as IEnumResources ptr ptr) as HRESULT
 3046 declare sub IEnumResources_Clone_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3047 #define __IShellItemResources_INTERFACE_DEFINED__
 3048 extern IID_IShellItemResources as const GUID
 3049 type IShellItemResources as IShellItemResources_
 3050 
 3051 type IShellItemResourcesVtbl
 3052     QueryInterface as function(byval This as IShellItemResources ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 3053     AddRef as function(byval This as IShellItemResources ptr) as ULONG
 3054     Release as function(byval This as IShellItemResources ptr) as ULONG
 3055     GetAttributes as function(byval This as IShellItemResources ptr, byval pdwAttributes as DWORD ptr) as HRESULT
 3056     GetSize as function(byval This as IShellItemResources ptr, byval pullSize as ULONGLONG ptr) as HRESULT
 3057     GetTimes as function(byval This as IShellItemResources ptr, byval pftCreation as FILETIME ptr, byval pftWrite as FILETIME ptr, byval pftAccess as FILETIME ptr) as HRESULT
 3058     SetTimes as function(byval This as IShellItemResources ptr, byval pftCreation as const FILETIME ptr, byval pftWrite as const FILETIME ptr, byval pftAccess as const FILETIME ptr) as HRESULT
 3059     GetResourceDescription as function(byval This as IShellItemResources ptr, byval pcsir as const SHELL_ITEM_RESOURCE ptr, byval ppszDescription as LPWSTR ptr) as HRESULT
 3060     EnumResources as function(byval This as IShellItemResources ptr, byval ppenumr as IEnumResources ptr ptr) as HRESULT
 3061     SupportsResource as function(byval This as IShellItemResources ptr, byval pcsir as const SHELL_ITEM_RESOURCE ptr) as HRESULT
 3062     OpenResource as function(byval This as IShellItemResources ptr, byval pcsir as const SHELL_ITEM_RESOURCE ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 3063     CreateResource as function(byval This as IShellItemResources ptr, byval pcsir as const SHELL_ITEM_RESOURCE ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 3064     MarkForDelete as function(byval This as IShellItemResources ptr) as HRESULT
 3065 end type
 3066 
 3067 type IShellItemResources_
 3068     lpVtbl as IShellItemResourcesVtbl ptr
 3069 end type
 3070 
 3071 #define IShellItemResources_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 3072 #define IShellItemResources_AddRef(This) (This)->lpVtbl->AddRef(This)
 3073 #define IShellItemResources_Release(This) (This)->lpVtbl->Release(This)
 3074 #define IShellItemResources_GetAttributes(This, pdwAttributes) (This)->lpVtbl->GetAttributes(This, pdwAttributes)
 3075 #define IShellItemResources_GetSize(This, pullSize) (This)->lpVtbl->GetSize(This, pullSize)
 3076 #define IShellItemResources_GetTimes(This, pftCreation, pftWrite, pftAccess) (This)->lpVtbl->GetTimes(This, pftCreation, pftWrite, pftAccess)
 3077 #define IShellItemResources_SetTimes(This, pftCreation, pftWrite, pftAccess) (This)->lpVtbl->SetTimes(This, pftCreation, pftWrite, pftAccess)
 3078 #define IShellItemResources_GetResourceDescription(This, pcsir, ppszDescription) (This)->lpVtbl->GetResourceDescription(This, pcsir, ppszDescription)
 3079 #define IShellItemResources_EnumResources(This, ppenumr) (This)->lpVtbl->EnumResources(This, ppenumr)
 3080 #define IShellItemResources_SupportsResource(This, pcsir) (This)->lpVtbl->SupportsResource(This, pcsir)
 3081 #define IShellItemResources_OpenResource(This, pcsir, riid, ppv) (This)->lpVtbl->OpenResource(This, pcsir, riid, ppv)
 3082 #define IShellItemResources_CreateResource(This, pcsir, riid, ppv) (This)->lpVtbl->CreateResource(This, pcsir, riid, ppv)
 3083 #define IShellItemResources_MarkForDelete(This) (This)->lpVtbl->MarkForDelete(This)
 3084 
 3085 declare function IShellItemResources_GetAttributes_Proxy(byval This as IShellItemResources ptr, byval pdwAttributes as DWORD ptr) as HRESULT
 3086 declare sub IShellItemResources_GetAttributes_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3087 declare function IShellItemResources_GetSize_Proxy(byval This as IShellItemResources ptr, byval pullSize as ULONGLONG ptr) as HRESULT
 3088 declare sub IShellItemResources_GetSize_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3089 declare function IShellItemResources_GetTimes_Proxy(byval This as IShellItemResources ptr, byval pftCreation as FILETIME ptr, byval pftWrite as FILETIME ptr, byval pftAccess as FILETIME ptr) as HRESULT
 3090 declare sub IShellItemResources_GetTimes_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3091 declare function IShellItemResources_SetTimes_Proxy(byval This as IShellItemResources ptr, byval pftCreation as const FILETIME ptr, byval pftWrite as const FILETIME ptr, byval pftAccess as const FILETIME ptr) as HRESULT
 3092 declare sub IShellItemResources_SetTimes_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3093 declare function IShellItemResources_GetResourceDescription_Proxy(byval This as IShellItemResources ptr, byval pcsir as const SHELL_ITEM_RESOURCE ptr, byval ppszDescription as LPWSTR ptr) as HRESULT
 3094 declare sub IShellItemResources_GetResourceDescription_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3095 declare function IShellItemResources_EnumResources_Proxy(byval This as IShellItemResources ptr, byval ppenumr as IEnumResources ptr ptr) as HRESULT
 3096 declare sub IShellItemResources_EnumResources_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3097 declare function IShellItemResources_SupportsResource_Proxy(byval This as IShellItemResources ptr, byval pcsir as const SHELL_ITEM_RESOURCE ptr) as HRESULT
 3098 declare sub IShellItemResources_SupportsResource_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3099 declare function IShellItemResources_OpenResource_Proxy(byval This as IShellItemResources ptr, byval pcsir as const SHELL_ITEM_RESOURCE ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 3100 declare sub IShellItemResources_OpenResource_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3101 declare function IShellItemResources_CreateResource_Proxy(byval This as IShellItemResources ptr, byval pcsir as const SHELL_ITEM_RESOURCE ptr, byval riid as const IID const ptr, byval ppv as any ptr ptr) as HRESULT
 3102 declare sub IShellItemResources_CreateResource_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3103 declare function IShellItemResources_MarkForDelete_Proxy(byval This as IShellItemResources ptr) as HRESULT
 3104 declare sub IShellItemResources_MarkForDelete_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3105 #define __ITransferDestination_INTERFACE_DEFINED__
 3106 extern IID_ITransferDestination as const GUID
 3107 type ITransferDestination as ITransferDestination_
 3108 
 3109 type ITransferDestinationVtbl
 3110     QueryInterface as function(byval This as ITransferDestination ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 3111     AddRef as function(byval This as ITransferDestination ptr) as ULONG
 3112     Release as function(byval This as ITransferDestination ptr) as ULONG
 3113     Advise as function(byval This as ITransferDestination ptr, byval psink as ITransferAdviseSink ptr, byval pdwCookie as DWORD ptr) as HRESULT
 3114     Unadvise as function(byval This as ITransferDestination ptr, byval dwCookie as DWORD) as HRESULT
 3115     CreateItem as function(byval This as ITransferDestination ptr, byval pszName as LPCWSTR, byval dwAttributes as DWORD, byval ullSize as ULONGLONG, byval flags as TRANSFER_SOURCE_FLAGS, byval riidItem as const IID const ptr, byval ppvItem as any ptr ptr, byval riidResources as const IID const ptr, byval ppvResources as any ptr ptr) as HRESULT
 3116 end type
 3117 
 3118 type ITransferDestination_
 3119     lpVtbl as ITransferDestinationVtbl ptr
 3120 end type
 3121 
 3122 #define ITransferDestination_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 3123 #define ITransferDestination_AddRef(This) (This)->lpVtbl->AddRef(This)
 3124 #define ITransferDestination_Release(This) (This)->lpVtbl->Release(This)
 3125 #define ITransferDestination_Advise(This, psink, pdwCookie) (This)->lpVtbl->Advise(This, psink, pdwCookie)
 3126 #define ITransferDestination_Unadvise(This, dwCookie) (This)->lpVtbl->Unadvise(This, dwCookie)
 3127 #define ITransferDestination_CreateItem(This, pszName, dwAttributes, ullSize, flags, riidItem, ppvItem, riidResources, ppvResources) (This)->lpVtbl->CreateItem(This, pszName, dwAttributes, ullSize, flags, riidItem, ppvItem, riidResources, ppvResources)
 3128 
 3129 declare function ITransferDestination_Advise_Proxy(byval This as ITransferDestination ptr, byval psink as ITransferAdviseSink ptr, byval pdwCookie as DWORD ptr) as HRESULT
 3130 declare sub ITransferDestination_Advise_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3131 declare function ITransferDestination_Unadvise_Proxy(byval This as ITransferDestination ptr, byval dwCookie as DWORD) as HRESULT
 3132 declare sub ITransferDestination_Unadvise_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3133 declare function ITransferDestination_CreateItem_Proxy(byval This as ITransferDestination ptr, byval pszName as LPCWSTR, byval dwAttributes as DWORD, byval ullSize as ULONGLONG, byval flags as TRANSFER_SOURCE_FLAGS, byval riidItem as const IID const ptr, byval ppvItem as any ptr ptr, byval riidResources as const IID const ptr, byval ppvResources as any ptr ptr) as HRESULT
 3134 declare sub ITransferDestination_CreateItem_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3135 #define __IStreamAsync_INTERFACE_DEFINED__
 3136 extern IID_IStreamAsync as const GUID
 3137 type IStreamAsync as IStreamAsync_
 3138 
 3139 type IStreamAsyncVtbl
 3140     QueryInterface as function(byval This as IStreamAsync ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 3141     AddRef as function(byval This as IStreamAsync ptr) as ULONG
 3142     Release as function(byval This as IStreamAsync ptr) as ULONG
 3143     Read as function(byval This as IStreamAsync ptr, byval pv as any ptr, byval cb as ULONG, byval pcbRead as ULONG ptr) as HRESULT
 3144     Write as function(byval This as IStreamAsync ptr, byval pv as const any ptr, byval cb as ULONG, byval pcbWritten as ULONG ptr) as HRESULT
 3145     Seek as function(byval This as IStreamAsync ptr, byval dlibMove as LARGE_INTEGER, byval dwOrigin as DWORD, byval plibNewPosition as ULARGE_INTEGER ptr) as HRESULT
 3146     SetSize as function(byval This as IStreamAsync ptr, byval libNewSize as ULARGE_INTEGER) as HRESULT
 3147     CopyTo as function(byval This as IStreamAsync ptr, byval pstm as IStream ptr, byval cb as ULARGE_INTEGER, byval pcbRead as ULARGE_INTEGER ptr, byval pcbWritten as ULARGE_INTEGER ptr) as HRESULT
 3148     Commit as function(byval This as IStreamAsync ptr, byval grfCommitFlags as DWORD) as HRESULT
 3149     Revert as function(byval This as IStreamAsync ptr) as HRESULT
 3150     LockRegion as function(byval This as IStreamAsync ptr, byval libOffset as ULARGE_INTEGER, byval cb as ULARGE_INTEGER, byval dwLockType as DWORD) as HRESULT
 3151     UnlockRegion as function(byval This as IStreamAsync ptr, byval libOffset as ULARGE_INTEGER, byval cb as ULARGE_INTEGER, byval dwLockType as DWORD) as HRESULT
 3152     Stat as function(byval This as IStreamAsync ptr, byval pstatstg as STATSTG ptr, byval grfStatFlag as DWORD) as HRESULT
 3153     Clone as function(byval This as IStreamAsync ptr, byval ppstm as IStream ptr ptr) as HRESULT
 3154     ReadAsync as function(byval This as IStreamAsync ptr, byval pv as any ptr, byval cb as DWORD, byval pcbRead as LPDWORD, byval lpOverlapped as LPOVERLAPPED) as HRESULT
 3155     WriteAsync as function(byval This as IStreamAsync ptr, byval lpBuffer as const any ptr, byval cb as DWORD, byval pcbWritten as LPDWORD, byval lpOverlapped as LPOVERLAPPED) as HRESULT
 3156     OverlappedResult as function(byval This as IStreamAsync ptr, byval lpOverlapped as LPOVERLAPPED, byval lpNumberOfBytesTransferred as LPDWORD, byval bWait as WINBOOL) as HRESULT
 3157     CancelIo as function(byval This as IStreamAsync ptr) as HRESULT
 3158 end type
 3159 
 3160 type IStreamAsync_
 3161     lpVtbl as IStreamAsyncVtbl ptr
 3162 end type
 3163 
 3164 #define IStreamAsync_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 3165 #define IStreamAsync_AddRef(This) (This)->lpVtbl->AddRef(This)
 3166 #define IStreamAsync_Release(This) (This)->lpVtbl->Release(This)
 3167 #define IStreamAsync_Read(This, pv, cb, pcbRead) (This)->lpVtbl->Read(This, pv, cb, pcbRead)
 3168 #define IStreamAsync_Write(This, pv, cb, pcbWritten) (This)->lpVtbl->Write(This, pv, cb, pcbWritten)
 3169 #define IStreamAsync_Seek(This, dlibMove, dwOrigin, plibNewPosition) (This)->lpVtbl->Seek(This, dlibMove, dwOrigin, plibNewPosition)
 3170 #define IStreamAsync_SetSize(This, libNewSize) (This)->lpVtbl->SetSize(This, libNewSize)
 3171 #define IStreamAsync_CopyTo(This, pstm, cb, pcbRead, pcbWritten) (This)->lpVtbl->CopyTo(This, pstm, cb, pcbRead, pcbWritten)
 3172 #define IStreamAsync_Commit(This, grfCommitFlags) (This)->lpVtbl->Commit(This, grfCommitFlags)
 3173 #define IStreamAsync_Revert(This) (This)->lpVtbl->Revert(This)
 3174 #define IStreamAsync_LockRegion(This, libOffset, cb, dwLockType) (This)->lpVtbl->LockRegion(This, libOffset, cb, dwLockType)
 3175 #define IStreamAsync_UnlockRegion(This, libOffset, cb, dwLockType) (This)->lpVtbl->UnlockRegion(This, libOffset, cb, dwLockType)
 3176 #define IStreamAsync_Stat(This, pstatstg, grfStatFlag) (This)->lpVtbl->Stat(This, pstatstg, grfStatFlag)
 3177 #define IStreamAsync_Clone(This, ppstm) (This)->lpVtbl->Clone(This, ppstm)
 3178 #define IStreamAsync_ReadAsync(This, pv, cb, pcbRead, lpOverlapped) (This)->lpVtbl->ReadAsync(This, pv, cb, pcbRead, lpOverlapped)
 3179 #define IStreamAsync_WriteAsync(This, lpBuffer, cb, pcbWritten, lpOverlapped) (This)->lpVtbl->WriteAsync(This, lpBuffer, cb, pcbWritten, lpOverlapped)
 3180 #define IStreamAsync_OverlappedResult(This, lpOverlapped, lpNumberOfBytesTransferred, bWait) (This)->lpVtbl->OverlappedResult(This, lpOverlapped, lpNumberOfBytesTransferred, bWait)
 3181 #define IStreamAsync_CancelIo(This) (This)->lpVtbl->CancelIo(This)
 3182 
 3183 declare function IStreamAsync_ReadAsync_Proxy(byval This as IStreamAsync ptr, byval pv as any ptr, byval cb as DWORD, byval pcbRead as LPDWORD, byval lpOverlapped as LPOVERLAPPED) as HRESULT
 3184 declare sub IStreamAsync_ReadAsync_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3185 declare function IStreamAsync_WriteAsync_Proxy(byval This as IStreamAsync ptr, byval lpBuffer as const any ptr, byval cb as DWORD, byval pcbWritten as LPDWORD, byval lpOverlapped as LPOVERLAPPED) as HRESULT
 3186 declare sub IStreamAsync_WriteAsync_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3187 declare function IStreamAsync_OverlappedResult_Proxy(byval This as IStreamAsync ptr, byval lpOverlapped as LPOVERLAPPED, byval lpNumberOfBytesTransferred as LPDWORD, byval bWait as WINBOOL) as HRESULT
 3188 declare sub IStreamAsync_OverlappedResult_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3189 declare function IStreamAsync_CancelIo_Proxy(byval This as IStreamAsync ptr) as HRESULT
 3190 declare sub IStreamAsync_CancelIo_Stub(byval This as IRpcStubBuffer ptr, byval pRpcChannelBuffer as IRpcChannelBuffer ptr, byval pRpcMessage as PRPC_MESSAGE, byval pdwStubPhase as DWORD ptr)
 3191 #define __IStreamUnbufferedInfo_INTERFACE_DEFINED__
 3192 extern IID_IStreamUnbufferedInfo as const GUID
 3193 type IStreamUnbufferedInfo as IStreamUnbufferedInfo_
 3194 
 3195 type IStreamUnbufferedInfoVtbl
 3196     QueryInterface as function(byval This as IStreamUnbufferedInfo ptr, byval riid as const IID const ptr, byval ppvObject as any ptr ptr) as HRESULT
 3197     AddRef as function(byval This as IStreamUnbufferedInfo ptr) as ULONG
 3198     Release as function(byval This as IStreamUnbufferedInfo ptr) as ULONG
 3199     GetSectorSize as function(byval This as IStreamUnbufferedInfo ptr, byval pcbSectorSize as ULONG ptr) as HRESULT
 3200 end type
 3201 
 3202 type IStreamUnbufferedInfo_
 3203     lpVtbl as IStreamUnbufferedInfoVtbl ptr
 3204 end type
 3205 
 3206 #define IStreamUnbufferedInfo_QueryInterface(This, riid, ppvObject) (This)->lpVtbl->QueryInterface(This, riid, ppvObject)
 3207 #define IStreamUnbufferedInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
 3208 #define IStreamUnbufferedInfo_Release(This) (This)->lpVtbl->Release(This)
 3209 #define IStreamUnbufferedInfo_GetSectorSize(This, pcbSectorSize) (This)->lpVtbl->GetSectorSize(This, pcbSectorSize)
 3210 declare function IStreamUnbufferedInfo_GetSectorSize_Proxy(byval This as IStreamUnbufferedInfo ptr, byval pcbSectorSize as ULONG ptr) as HRESULT