package body IE.IShellUIHelper4_Object is

   procedure ResetFirstBootMode
     (This : IShellUIHelper4_Type)
   is
   begin
      Invoke (This, IShellUIHelper4_ResetFirstBootMode);
   end ResetFirstBootMode;

   procedure ResetSafeMode
     (This : IShellUIHelper4_Type)
   is
   begin
      Invoke (This, IShellUIHelper4_ResetSafeMode);
   end ResetSafeMode;

   procedure RefreshOfflineDesktop
     (This : IShellUIHelper4_Type)
   is
   begin
      Invoke (This, IShellUIHelper4_RefreshOfflineDesktop);
   end RefreshOfflineDesktop;

   procedure AddFavorite
     (This  : IShellUIHelper4_Type;
      URL   : GNATCOM.Types.VARIANT;
      Title : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free  : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_AddFavorite,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => Title,
          2 => URL),
         Free);
   end AddFavorite;

   procedure AddChannel
     (This : IShellUIHelper4_Type;
      URL  : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_AddChannel,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => URL),
         Free);
   end AddChannel;

   procedure AddDesktopComponent
     (This   : IShellUIHelper4_Type;
      URL    : GNATCOM.Types.VARIANT;
      uType  : GNATCOM.Types.VARIANT;
      Left   : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Top    : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Width  : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Height : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free   : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_AddDesktopComponent,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => Height,
          2 => Width,
          3 => Top,
          4 => Left,
          5 => uType,
          6 => URL),
         Free);
   end AddDesktopComponent;

   function IsSubscribed
     (This : IShellUIHelper4_Type;
      URL  : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IShellUIHelper4_IsSubscribed,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => URL),
         Free);
   end IsSubscribed;

   procedure NavigateAndFind
     (This           : IShellUIHelper4_Type;
      URL            : GNATCOM.Types.VARIANT;
      strQuery       : GNATCOM.Types.VARIANT;
      varTargetFrame : GNATCOM.Types.VARIANT;
      Free           : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_NavigateAndFind,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => varTargetFrame,
          2 => strQuery,
          3 => URL),
         Free);
   end NavigateAndFind;

   procedure ImportExportFavorites
     (This          : IShellUIHelper4_Type;
      fImport       : GNATCOM.Types.VARIANT;
      strImpExpPath : GNATCOM.Types.VARIANT;
      Free          : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_ImportExportFavorites,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => strImpExpPath,
          2 => fImport),
         Free);
   end ImportExportFavorites;

   procedure AutoCompleteSaveForm
     (This : IShellUIHelper4_Type;
      Form : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_AutoCompleteSaveForm,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => Form),
         Free);
   end AutoCompleteSaveForm;

   procedure AutoScan
     (This            : IShellUIHelper4_Type;
      strSearch       : GNATCOM.Types.VARIANT;
      strFailureUrl   : GNATCOM.Types.VARIANT;
      pvarTargetFrame : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free            : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_AutoScan,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pvarTargetFrame,
          2 => strFailureUrl,
          3 => strSearch),
         Free);
   end AutoScan;

   procedure AutoCompleteAttach
     (This     : IShellUIHelper4_Type;
      Reserved : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free     : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_AutoCompleteAttach,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => Reserved),
         Free);
   end AutoCompleteAttach;

   function ShowBrowserUI
     (This     : IShellUIHelper4_Type;
      bstrName : GNATCOM.Types.VARIANT;
      pvarIn   : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IShellUIHelper4_ShowBrowserUI,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pvarIn,
          2 => bstrName),
         Free);
   end ShowBrowserUI;

   procedure AddSearchProvider
     (This : IShellUIHelper4_Type;
      URL  : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_AddSearchProvider,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => URL),
         Free);
   end AddSearchProvider;

   procedure RunOnceShown
     (This : IShellUIHelper4_Type)
   is
   begin
      Invoke (This, IShellUIHelper4_RunOnceShown);
   end RunOnceShown;

   procedure SkipRunOnce
     (This : IShellUIHelper4_Type)
   is
   begin
      Invoke (This, IShellUIHelper4_SkipRunOnce);
   end SkipRunOnce;

   procedure CustomizeSettings
     (This       : IShellUIHelper4_Type;
      fSQM       : GNATCOM.Types.VARIANT;
      fPhishing  : GNATCOM.Types.VARIANT;
      bstrLocale : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_CustomizeSettings,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => bstrLocale,
          2 => fPhishing,
          3 => fSQM),
         Free);
   end CustomizeSettings;

   function SqmEnabled
     (This : IShellUIHelper4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IShellUIHelper4_SqmEnabled);
   end SqmEnabled;

   function PhishingEnabled
     (This : IShellUIHelper4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IShellUIHelper4_PhishingEnabled);
   end PhishingEnabled;

   function BrandImageUri
     (This : IShellUIHelper4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IShellUIHelper4_BrandImageUri);
   end BrandImageUri;

   procedure SkipTabsWelcome
     (This : IShellUIHelper4_Type)
   is
   begin
      Invoke (This, IShellUIHelper4_SkipTabsWelcome);
   end SkipTabsWelcome;

   procedure DiagnoseConnection
     (This : IShellUIHelper4_Type)
   is
   begin
      Invoke (This, IShellUIHelper4_DiagnoseConnection);
   end DiagnoseConnection;

   procedure CustomizeClearType
     (This : IShellUIHelper4_Type;
      fSet : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_CustomizeClearType,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => fSet),
         Free);
   end CustomizeClearType;

   function IsSearchProviderInstalled
     (This : IShellUIHelper4_Type;
      URL  : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IShellUIHelper4_IsSearchProviderInstalled,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => URL),
         Free);
   end IsSearchProviderInstalled;

   function IsSearchMigrated
     (This : IShellUIHelper4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IShellUIHelper4_IsSearchMigrated);
   end IsSearchMigrated;

   function DefaultSearchProvider
     (This : IShellUIHelper4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IShellUIHelper4_DefaultSearchProvider);
   end DefaultSearchProvider;

   procedure RunOnceRequiredSettingsComplete
     (This      : IShellUIHelper4_Type;
      fComplete : GNATCOM.Types.VARIANT;
      Free      : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_RunOnceRequiredSettingsComplete,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => fComplete),
         Free);
   end RunOnceRequiredSettingsComplete;

   function RunOnceHasShown
     (This : IShellUIHelper4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IShellUIHelper4_RunOnceHasShown);
   end RunOnceHasShown;

   function SearchGuideUrl
     (This : IShellUIHelper4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IShellUIHelper4_SearchGuideUrl);
   end SearchGuideUrl;

   procedure AddService
     (This : IShellUIHelper4_Type;
      URL  : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_AddService,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => URL),
         Free);
   end AddService;

   function IsServiceInstalled
     (This : IShellUIHelper4_Type;
      URL  : GNATCOM.Types.VARIANT;
      Verb : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IShellUIHelper4_IsServiceInstalled,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => Verb,
          2 => URL),
         Free);
   end IsServiceInstalled;

   function InPrivateFilteringEnabled
     (This : IShellUIHelper4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IShellUIHelper4_InPrivateFilteringEnabled);
   end InPrivateFilteringEnabled;

   procedure AddToFavoritesBar
     (This  : IShellUIHelper4_Type;
      URL   : GNATCOM.Types.VARIANT;
      Title : GNATCOM.Types.VARIANT;
      uType : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free  : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_AddToFavoritesBar,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => uType,
          2 => Title,
          3 => URL),
         Free);
   end AddToFavoritesBar;

   procedure BuildNewTabPage
     (This : IShellUIHelper4_Type)
   is
   begin
      Invoke (This, IShellUIHelper4_BuildNewTabPage);
   end BuildNewTabPage;

   procedure SetRecentlyClosedVisible
     (This     : IShellUIHelper4_Type;
      fVisible : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_SetRecentlyClosedVisible,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => fVisible),
         Free);
   end SetRecentlyClosedVisible;

   procedure SetActivitiesVisible
     (This     : IShellUIHelper4_Type;
      fVisible : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_SetActivitiesVisible,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => fVisible),
         Free);
   end SetActivitiesVisible;

   procedure ContentDiscoveryReset
     (This : IShellUIHelper4_Type)
   is
   begin
      Invoke (This, IShellUIHelper4_ContentDiscoveryReset);
   end ContentDiscoveryReset;

   function IsSuggestedSitesEnabled
     (This : IShellUIHelper4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IShellUIHelper4_IsSuggestedSitesEnabled);
   end IsSuggestedSitesEnabled;

   procedure EnableSuggestedSites
     (This    : IShellUIHelper4_Type;
      fEnable : GNATCOM.Types.VARIANT;
      Free    : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_EnableSuggestedSites,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => fEnable),
         Free);
   end EnableSuggestedSites;

   procedure NavigateToSuggestedSites
     (This            : IShellUIHelper4_Type;
      bstrRelativeUrl : GNATCOM.Types.VARIANT;
      Free            : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_NavigateToSuggestedSites,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => bstrRelativeUrl),
         Free);
   end NavigateToSuggestedSites;

   procedure ShowTabsHelp
     (This : IShellUIHelper4_Type)
   is
   begin
      Invoke (This, IShellUIHelper4_ShowTabsHelp);
   end ShowTabsHelp;

   procedure ShowInPrivateHelp
     (This : IShellUIHelper4_Type)
   is
   begin
      Invoke (This, IShellUIHelper4_ShowInPrivateHelp);
   end ShowInPrivateHelp;

   function msIsSiteMode
     (This : IShellUIHelper4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IShellUIHelper4_msIsSiteMode);
   end msIsSiteMode;

   procedure msSiteModeShowThumbBar
     (This : IShellUIHelper4_Type)
   is
   begin
      Invoke (This, IShellUIHelper4_msSiteModeShowThumbBar);
   end msSiteModeShowThumbBar;

   function msSiteModeAddThumbBarButton
     (This        : IShellUIHelper4_Type;
      bstrIconURL : GNATCOM.Types.VARIANT;
      bstrTooltip : GNATCOM.Types.VARIANT;
      Free        : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IShellUIHelper4_msSiteModeAddThumbBarButton,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => bstrTooltip,
          2 => bstrIconURL),
         Free);
   end msSiteModeAddThumbBarButton;

   procedure msSiteModeUpdateThumbBarButton
     (This     : IShellUIHelper4_Type;
      ButtonID : GNATCOM.Types.VARIANT;
      fEnabled : GNATCOM.Types.VARIANT;
      fVisible : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_msSiteModeUpdateThumbBarButton,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => fVisible,
          2 => fEnabled,
          3 => ButtonID),
         Free);
   end msSiteModeUpdateThumbBarButton;

   procedure msSiteModeSetIconOverlay
     (This            : IShellUIHelper4_Type;
      IconUrl         : GNATCOM.Types.VARIANT;
      pvarDescription : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free            : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_msSiteModeSetIconOverlay,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pvarDescription,
          2 => IconUrl),
         Free);
   end msSiteModeSetIconOverlay;

   procedure msSiteModeClearIconOverlay
     (This : IShellUIHelper4_Type)
   is
   begin
      Invoke (This, IShellUIHelper4_msSiteModeClearIconOverlay);
   end msSiteModeClearIconOverlay;

   procedure msAddSiteMode
     (This : IShellUIHelper4_Type)
   is
   begin
      Invoke (This, IShellUIHelper4_msAddSiteMode);
   end msAddSiteMode;

   procedure msSiteModeCreateJumpList
     (This       : IShellUIHelper4_Type;
      bstrHeader : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_msSiteModeCreateJumpList,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => bstrHeader),
         Free);
   end msSiteModeCreateJumpList;

   procedure msSiteModeAddJumpListItem
     (This           : IShellUIHelper4_Type;
      bstrName       : GNATCOM.Types.VARIANT;
      bstrActionUri  : GNATCOM.Types.VARIANT;
      bstrIconUri    : GNATCOM.Types.VARIANT;
      pvarWindowType : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free           : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_msSiteModeAddJumpListItem,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pvarWindowType,
          2 => bstrIconUri,
          3 => bstrActionUri,
          4 => bstrName),
         Free);
   end msSiteModeAddJumpListItem;

   procedure msSiteModeClearJumpList
     (This : IShellUIHelper4_Type)
   is
   begin
      Invoke (This, IShellUIHelper4_msSiteModeClearJumpList);
   end msSiteModeClearJumpList;

   procedure msSiteModeShowJumpList
     (This : IShellUIHelper4_Type)
   is
   begin
      Invoke (This, IShellUIHelper4_msSiteModeShowJumpList);
   end msSiteModeShowJumpList;

   function msSiteModeAddButtonStyle
     (This        : IShellUIHelper4_Type;
      uiButtonID  : GNATCOM.Types.VARIANT;
      bstrIconURL : GNATCOM.Types.VARIANT;
      bstrTooltip : GNATCOM.Types.VARIANT;
      Free        : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IShellUIHelper4_msSiteModeAddButtonStyle,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => bstrTooltip,
          2 => bstrIconURL,
          3 => uiButtonID),
         Free);
   end msSiteModeAddButtonStyle;

   procedure msSiteModeShowButtonStyle
     (This       : IShellUIHelper4_Type;
      uiButtonID : GNATCOM.Types.VARIANT;
      uiStyleID  : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_msSiteModeShowButtonStyle,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => uiStyleID,
          2 => uiButtonID),
         Free);
   end msSiteModeShowButtonStyle;

   procedure msSiteModeActivate
     (This : IShellUIHelper4_Type)
   is
   begin
      Invoke (This, IShellUIHelper4_msSiteModeActivate);
   end msSiteModeActivate;

   function msIsSiteModeFirstRun
     (This           : IShellUIHelper4_Type;
      fPreserveState : GNATCOM.Types.VARIANT;
      Free           : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IShellUIHelper4_msIsSiteModeFirstRun,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => fPreserveState),
         Free);
   end msIsSiteModeFirstRun;

   procedure msAddTrackingProtectionList
     (This           : IShellUIHelper4_Type;
      URL            : GNATCOM.Types.VARIANT;
      bstrFilterName : GNATCOM.Types.VARIANT;
      Free           : Boolean := True)
   is
   begin
      Invoke
        (This,
         IShellUIHelper4_msAddTrackingProtectionList,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => bstrFilterName,
          2 => URL),
         Free);
   end msAddTrackingProtectionList;

   function msTrackingProtectionEnabled
     (This : IShellUIHelper4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IShellUIHelper4_msTrackingProtectionEnabled);
   end msTrackingProtectionEnabled;

   function msActiveXFilteringEnabled
     (This : IShellUIHelper4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IShellUIHelper4_msActiveXFilteringEnabled);
   end msActiveXFilteringEnabled;

end IE.IShellUIHelper4_Object;

