shell

package
v0.0.0-...-8faa606 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 9, 2023 License: MIT Imports: 11 Imported by: 0

Documentation

Rendered for windows/amd64

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterDragDrop

func RegisterDragDrop(hWnd win.HWND, dropTarget *shellvt.IDropTarget)

RegisterDragDrop function.

func RevokeDragDrop

func RevokeDragDrop(hWnd win.HWND)

RevokeDragDrop function.

Types

type COMDLG_FILTERSPEC

type COMDLG_FILTERSPEC struct {
	PszName *uint16
	PszSpec *uint16
}

COMDLG_FILTERSPEC struct.

type FilterSpec

type FilterSpec struct {
	Name string
	Spec string
}

COMDLG_FILTERSPEC syntactic sugar.

type IDataObject

type IDataObject interface {
	com.IUnknown
}

IDataObject COM interface.

func NewIDataObject

func NewIDataObject(base com.IUnknown) IDataObject

Constructs a COM object from the base IUnknown.

⚠️ You must defer IDataObject.Release().

type IDesktopWallpaper

type IDesktopWallpaper interface {
	com.IUnknown

	// [AdvanceSlideshow] COM method.
	//
	// [AdvanceSlideshow]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-idesktopwallpaper-advanceslideshow
	AdvanceSlideshow(direction shellco.DSD)

	// [Enable] COM method.
	//
	// [Enable]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-idesktopwallpaper-enable
	Enable(enable bool)

	// [GetBackgroundColor] COM method.
	//
	// [GetBackgroundColor]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-idesktopwallpaper-getbackgroundcolor
	GetBackgroundColor() win.COLORREF

	// [GetMonitorDevicePathAt] COM method.
	//
	// [GetMonitorDevicePathAt]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-idesktopwallpaper-getmonitordevicepathat
	GetMonitorDevicePathAt(monitorIndex int) string

	// [GetMonitorDevicePathCount] COM method.
	//
	// [GetMonitorDevicePathCount]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-idesktopwallpaper-getmonitordevicepathcount
	GetMonitorDevicePathCount() int

	// [GetMonitorRECT] COM method.
	//
	// [GetMonitorRECT]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-idesktopwallpaper-getmonitorrect
	GetMonitorRECT(monitorId string) win.RECT

	// [GetPosition]: COM method.
	//
	// [GetPosition]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-idesktopwallpaper-getposition
	GetPosition() shellco.DWPOS

	// [GetSlideshowOptions] COM method.
	//
	// [GetSlideshowOptions]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-idesktopwallpaper-getslideshowoptions
	GetSlideshowOptions() (opts shellco.DSO, msTransition int)

	// [GetStatus] COM method.
	//
	// [GetStatus]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-idesktopwallpaper-getstatus
	GetStatus() shellco.DSS

	// [GetWallpaper] COM method.
	//
	// [GetWallpaper]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-idesktopwallpaper-getwallpaper
	GetWallpaper(monitorId win.StrOpt) string

	// [SetBackgroundColor] COM method.
	//
	// [SetBackgroundColor]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-idesktopwallpaper-setbackgroundcolor
	SetBackgroundColor(color win.COLORREF)

	// [SetPosition] COM method.
	//
	// [SetPosition]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-idesktopwallpaper-setposition
	SetPosition(position shellco.DWPOS)

	// [SetSlideshowOptions] COM method.
	//
	// [SetSlideshowOptions]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-idesktopwallpaper-setslideshowoptions
	SetSlideshowOptions(opts shellco.DSO, msTransition int)

	// [SetWallpaper] COM method.
	//
	// [SetWallpaper]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-idesktopwallpaper-setwallpaper
	SetWallpaper(monitorId win.StrOpt, imagePath string)
}

IDesktopWallpaper COM interface.

func NewIDesktopWallpaper

func NewIDesktopWallpaper(base com.IUnknown) IDesktopWallpaper

Constructs a COM object from the base IUnknown.

⚠️ You must defer IDesktopWallpaper.Release().

Example

deskWp := shell.NewIDesktopWallpaper(
	com.CoCreateInstance(
		shellco.CLSID_DesktopWallpaper, nil,
		comco.CLSCTX_LOCAL_SERVER,
		shellco.IID_IDesktopWallpaper),
)
defer deskWp.Release()

type IDropTarget

type IDropTarget interface {
	com.IUnknown

	// [DragEnter] COM method.
	//
	// [DragEnter]: https://learn.microsoft.com/en-us/windows/win32/api/oleidl/nf-oleidl-idroptarget-dragenter
	DragEnter(dataObj IDataObject, keyState co.MK,
		pt win.POINT, effect *shellco.DROPEFFECT)

	// [DragLeave] COM method.
	//
	// [DragLeave]: https://learn.microsoft.com/en-us/windows/win32/api/oleidl/nf-oleidl-idroptarget-dragleave
	DragLeave()

	// [DragOver] COM method.
	//
	// [DragOver]: https://learn.microsoft.com/en-us/windows/win32/api/oleidl/nf-oleidl-idroptarget-dragover
	DragOver(keyState co.MK, pt win.POINT, effect *shellco.DROPEFFECT)

	// [Drop] COM method.
	//
	// [Drop]: https://learn.microsoft.com/en-us/windows/win32/api/oleidl/nf-oleidl-idroptarget-drop
	Drop(dataObj IDataObject, keyState co.MK,
		pt win.POINT, effect *shellco.DROPEFFECT)
}

IDropTarget COM interface.

func NewIDropTarget

func NewIDropTarget(base com.IUnknown) IDropTarget

Constructs a COM object from the base IUnknown.

⚠️ You must defer IDropTarget.Release().

type IFileDialog

type IFileDialog interface {
	IModalWindow

	// [ClearClientData] COM method.
	//
	// [ClearClientData]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-clearclientdata
	ClearClientData()

	// [Close] COM method.
	//
	// [Close]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-close
	Close(hr errco.ERROR)

	// [GetCurrentSelection] COM method.
	//
	// ⚠️ You must defer IShellItem.Release() on the returned object.
	//
	// [GetCurrentSelection]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-getcurrentselection
	GetCurrentSelection() IShellItem

	// [GetFileName] COM method.
	//
	// [GetFileName]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-getfilename
	GetFileName() string

	// [GetFileTypeIndex] COM method.
	//
	// [GetFileTypeIndex]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-getfiletypeindex
	GetFileTypeIndex() int

	// [GetFolder] COM method.
	//
	// ⚠️ You must defer IShellItem.Release() on the returned object.
	//
	// [GetFolder]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-getfolder
	GetFolder() IShellItem

	// [GetOptions] COM method.
	//
	// [GetOptions]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-getoptions
	GetOptions() shellco.FOS

	// [GetResult] COM method.
	//
	// Prefer using IFileDialog.GetResultDisplayName(), which retrieves the path
	// directly.
	//
	// ⚠️ You must defer IShellItem.Release() on the returned object.
	//
	// [GetResult]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-getresult
	GetResult() IShellItem

	// This helper method calls IFileDialog.GetResult() and
	// IShellItem.GetDisplayName(), returning the single file selected by the
	// user.
	//
	// # Example
	//
	//	var fd shell.IFileDialog // initialized somewhere
	//
	//	chosenPath := fd.GetResultDisplayName(shellco.SIGDN_FILESYSPATH)
	GetResultDisplayName(sigdnName shellco.SIGDN) string

	// [SetClientGuid] COM method.
	//
	// [SetClientGuid]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-setclientguid
	SetClientGuid(guid *win.GUID)

	// [SetFileName] COM method.
	//
	// [SetFileName]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-setfilename
	SetFileName(name string)

	// [SetFileNameLabel] COM method.
	//
	// [SetFileNameLabel]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-setfilenamelabel
	SetFileNameLabel(label string)

	// [SetFileTypeIndex] COM method.
	//
	// The index is one-based.
	//
	// [SetFileTypeIndex]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-setfiletypeindex
	SetFileTypeIndex(index int)

	// [SetFileTypes] COM method.
	//
	// # Example
	//
	//	var fd shell.IFileDialog // initialized somewhere
	//
	//	fd.SetFileTypes([]shell.FilterSpec{
	//		{Name: "MP3 audio files", Spec: "*.mp3"},
	//		{Name: "All files", Spec: "*.*"},
	//	})
	//
	// [SetFileTypes]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-setfiletypes
	SetFileTypes(filterSpec []FilterSpec)

	// [SetFolder] COM method.
	//
	// [SetFolder]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-setfolder
	SetFolder(si IShellItem)

	// [SetOkButtonLabel] COM method.
	//
	// [SetOkButtonLabel]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-setokbuttonlabel
	SetOkButtonLabel(text string)

	// [SetOptions] COM method.
	//
	// # Example
	//
	//	var fd shell.IFileDialog // initialized somewhere
	//
	//	fd.SetOptions(
	//		fd.GetOptions() |
	//		shellco.FOS_FORCEFILESYSTEM |
	//		shellco.FOS_FILEMUSTEXIST)
	//
	// [SetOptions]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-setoptions
	SetOptions(fos shellco.FOS)

	// [SetTitle] COM method.
	//
	// [SetTitle]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifiledialog-settitle
	SetTitle(title string)
}

IFileDialog COM interface.

func NewIFileDialog

func NewIFileDialog(base com.IUnknown) IFileDialog

Constructs a COM object from the base IUnknown.

⚠️ You must defer IFileDialog.Release().

type IFileOpenDialog

type IFileOpenDialog interface {
	IFileDialog

	// [GetResults] COM method.
	//
	// Prefer using IFileOpenDialog.ListResultDisplayNames(), which retrieves
	// the paths directly.
	//
	// ⚠️ You must defer IShellItemArray.Release() on the returned object.
	//
	// [GetResults]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifileopendialog-getresults
	GetResults() IShellItemArray

	// [GetSelectedItems] COM method.
	//
	// ⚠️ You must defer IShellItemArray.Release() on the returned object.
	//
	// [GetSelectedItems]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifileopendialog-getselecteditems
	GetSelectedItems() IShellItemArray

	// This helper method calls IFileOpenDialog.GetResults() and
	// IShellItemArray.ListDisplayNames(), returning the multiple files selected
	// by the user.
	//
	// # Example
	//
	//	var fod shell.IFileOpenDialog // initialized somewhere
	//
	//	chosenFiles := fod.ListResultDisplayNames(shellco.SIGDN_FILESYSPATH)
	ListResultDisplayNames(sigdnName shellco.SIGDN) []string
}

IFileOpenDialog COM interface.

func NewIFileOpenDialog

func NewIFileOpenDialog(base com.IUnknown) IFileOpenDialog

Constructs a COM object from the base IUnknown.

⚠️ You must defer IFileOpenDialog.Release().

Example

fod := shell.NewIFileOpenDialog(
	com.CoCreateInstance(
		shellco.CLSID_FileOpenDialog, nil,
		comco.CLSCTX_INPROC_SERVER,
		shellco.IID_IFileOpenDialog),
)
defer fod.Release()

type IFileSaveDialog

type IFileSaveDialog interface {
	IFileDialog

	// [SetSaveAsItem] COM method.
	//
	// [SetSaveAsItem]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ifilesavedialog-setsaveasitem
	SetSaveAsItem(si IShellItem)
}

IFileSaveDialog COM interface.

func NewIFileSaveDialog

func NewIFileSaveDialog(base com.IUnknown) IFileSaveDialog

Constructs a COM object from the base IUnknown.

⚠️ You must defer IFileSaveDialog.Release().

Example

fsd := shell.NewIFileSaveDialog(
	com.CoCreateInstance(
		shellco.CLSID_FileSaveDialog, nil,
		comco.CLSCTX_INPROC_SERVER,
		shellco.IID_IFileSaveDialog),
)
defer fsd.Release()

type IModalWindow

type IModalWindow interface {
	com.IUnknown

	// [Show] COM method.
	//
	// Returns false if user cancelled.
	//
	// [Show]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-imodalwindow-show
	Show(hwndOwner win.HWND) bool
}

IModalWindow COM interface.

func NewIModalWindow

func NewIModalWindow(base com.IUnknown) IModalWindow

Constructs a COM object from the base IUnknown.

⚠️ You must defer IModalWindow.Release().

type IShellItem

type IShellItem interface {
	com.IUnknown

	// [Compare] COM method.
	//
	// [Compare]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishellitem-compare
	Compare(si IShellItem, hint shellco.SICHINT) bool

	// [GetAttributes] COM method.
	//
	// [GetAttributes]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishellitem-getattributes
	GetAttributes(mask co.SFGAO) co.SFGAO

	// [GetParent] COM method.
	//
	// ⚠️ You must defer IShellItem.Release() on the returned object.
	//
	// [GetParent]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishellitem-getparent
	GetParent() IShellItem

	// [GetDisplayName] COM method.
	//
	// # Example
	//
	//	var shi shell.IShellItem // initialized somewhere
	//
	//	fullPath := shi.GetDisplayName(shellco.SIGDN_FILESYSPATH)
	//
	// [GetDisplayName]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishellitem-getdisplayname
	GetDisplayName(sigdnName shellco.SIGDN) string
}

IShellItem COM interface.

func NewIShellItem

func NewIShellItem(base com.IUnknown) IShellItem

Constructs a COM object from the base IUnknown.

⚠️ You must defer IShellItem.Release().

func SHCreateItemFromParsingName

func SHCreateItemFromParsingName(folderOrFilePath string) (IShellItem, error)

SHCreateItemFromParsingName: function.

⚠️ You must defer IShellItem.Release().

Example

ish := shell.NewShellItemFromPath("C:\\Temp\\file.txt")
defer ish.Release()

type IShellItemArray

type IShellItemArray interface {
	com.IUnknown

	// [GetItemAt] COM method.
	//
	// Prefer using IShellItemArray.ListDisplayNames(), which directly retrieves
	// all paths at once.
	//
	// ⚠️ You must defer IShellItem.Release() on the returned object.
	//
	// [GetItemAt]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishellitemarray-getitemat
	GetItemAt(index int) IShellItem

	// [GetCount] COM method.
	//
	// [GetCount]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishellitemarray-getcount
	GetCount() int

	// This helper method calls IShellItemArray.GetItemAt() to retrieve all
	// IShellItem objects, then calls IShellItem.GetDisplayName() on each one,
	// retrieving the names as strings.
	//
	// # Example
	//
	//	var shia shell.IShellItemArray // initialized somewhere
	//
	//	fullPaths := shia.ListDisplayNames(shellco.SIGDN_FILESYSPATH)
	ListDisplayNames(sigdnName shellco.SIGDN) []string
}

IShellItemArray COM interface.

func NewIShellItemArray

func NewIShellItemArray(base com.IUnknown) IShellItemArray

Constructs a COM object from the base IUnknown.

⚠️ You must defer IShellItemArray.Release().

type IShellLink interface {
	com.IUnknown

	// [GetArguments] COM method.
	//
	// [GetArguments]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishelllinkw-getarguments
	GetArguments() string

	// [GetDescription] COM method.
	//
	// [GetDescription]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishelllinkw-getdescription
	GetDescription() string

	// [GetIconLocation] COM method.
	//
	// [GetIconLocation]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishelllinkw-geticonlocation
	GetIconLocation() (path string, index int32)

	// [GetPath] COM method.
	//
	// [GetPath]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishelllinkw-getpath
	GetPath(fd *win.WIN32_FIND_DATA, flags shellco.SLGP) string

	// [GetShowCmd] COM method.
	//
	// [GetShowCmd]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishelllinkw-getshowcmd
	GetShowCmd() co.SW

	// [GetWorkingDirectory] COM method.
	//
	// [GetWorkingDirectory]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishelllinkw-getworkingdirectory
	GetWorkingDirectory() string

	// [Resolve] COM method.
	//
	// [Resolve]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishelllinkw-resolve
	Resolve(hWnd win.HWND, flags shellco.SLR)

	// [SetArguments] COM method.
	//
	// [SetArguments]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishelllinkw-setarguments
	SetArguments(args string)

	// [SetDescription] COM method.
	//
	// [SetDescription]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishelllinkw-setdescription
	SetDescription(descr string)

	// [SetIconLocation] COM method.
	//
	// [SetIconLocation]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishelllinkw-seticonlocation
	SetIconLocation(path string, index int32)

	// [SetPath] COM method.
	//
	// [SetPath]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishelllinkw-setpath
	SetPath(path string)

	// [SetRelativePath] COM method.
	//
	// [SetRelativePath]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishelllinkw-setrelativepath
	SetRelativePath(path string)

	// [SetShowCmd] COM method.
	//
	// [SetShowCmd]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishelllinkw-setshowcmd
	SetShowCmd(cmd co.SW)

	// [SetWorkingDirectory] COM method.
	//
	// [SetWorkingDirectory]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishelllinkw-setworkingdirectory
	SetWorkingDirectory(path string)
}

IShellLink COM interface.

func NewIShellLink(base com.IUnknown) IShellLink

Constructs a COM object from the base IUnknown.

⚠️ You must defer IShellLink.Release().

lnk := shell.NewIShellLink(
	com.CoCreateInstance(
		shellco.CLSID_ShellLink, nil,
		comco.CLSCTX_INPROC_SERVER,
		shellco.IID_IShellLink),
)
defer lnk.Release()

type ITaskbarList

ITaskbarList COM interface.

func NewITaskbarList

func NewITaskbarList(base com.IUnknown) ITaskbarList

Constructs a COM object from the base IUnknown.

⚠️ You must defer ITaskbarList.Release().

Example

taskbl := shell.NewITaskbarList(
	com.CoCreateInstance(
		shellco.CLSID_TaskbarList, nil,
		comco.CLSCTX_INPROC_SERVER,
		shellco.IID_ITaskbarList),
)
defer taskbl.Release()

type ITaskbarList2

type ITaskbarList2 interface {
	ITaskbarList

	// [MarkFullscreenWindow] COM method.
	//
	// [MarkFullscreenWindow]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-itaskbarlist2-markfullscreenwindow
	MarkFullscreenWindow(hwnd win.HWND, fullScreen bool)
}

ITaskbarList2 COM interface.

func NewITaskbarList2

func NewITaskbarList2(base com.IUnknown) ITaskbarList2

Constructs a COM object from the base IUnknown.

⚠️ You must defer ITaskbarList2.Release().

Example

taskbl := shell.NewITaskbarList2(
	com.CoCreateInstance(
		shellco.CLSID_TaskbarList, nil,
		comco.CLSCTX_INPROC_SERVER,
		shellco.IID_ITaskbarList2),
)
defer taskbl.Release()

type ITaskbarList3

type ITaskbarList3 interface {
	ITaskbarList2

	// [RegisterTab] COM method.
	//
	// [RegisterTab]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-itaskbarlist3-registertab
	RegisterTab(hwndTab, hwndMDI win.HWND)

	// [SetOverlayIcon] COM method.
	//
	// [SetOverlayIcon]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-itaskbarlist3-setoverlayicon
	SetOverlayIcon(hWnd win.HWND, hIcon win.HICON, description string)

	// [SetProgressState] COM method.
	//
	// [SetProgressState]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-itaskbarlist3-setprogressstate
	SetProgressState(hWnd win.HWND, flags shellco.TBPF)

	// [SetProgressValue] COM method.
	//
	// [SetProgressValue]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-itaskbarlist3-setprogressvalue
	SetProgressValue(hWnd win.HWND, completed, total uint64)

	// [SetTabActive] COM method.
	//
	// [SetTabActive]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-itaskbarlist3-settabactive
	SetTabActive(hwndTab, hwndMDI win.HWND)

	// [SetTabOrder] COM method.
	//
	// [SetTabOrder]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-itaskbarlist3-settaborder
	SetTabOrder(hwndTab, hwndInsertBefore win.HWND)

	// [SetThumbnailClip] COM method.
	//
	// [SetThumbnailClip]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-itaskbarlist3-setthumbnailclip
	SetThumbnailClip(hWnd win.HWND, rcClip *win.RECT)

	// [SetThumbnailTooltip] COM method.
	//
	// [SetThumbnailTooltip]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-itaskbarlist3-setthumbnailtooltip
	SetThumbnailTooltip(hwnd win.HWND, tip string)

	// [ThumbBarAddButtons] COM method.
	//
	// [ThumbBarAddButtons]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-itaskbarlist3-thumbbaraddbuttons
	ThumbBarAddButtons(hWnd win.HWND, buttons []THUMBBUTTON)

	// [ThumbBarSetImageList] COM method.
	//
	// [ThumbBarSetImageList]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-itaskbarlist3-thumbbarsetimagelist
	ThumbBarSetImageList(hWnd win.HWND, hImgl win.HIMAGELIST)

	// [ThumbBarUpdateButtons] COM method.
	//
	// [ThumbBarUpdateButtons]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-itaskbarlist3-thumbbarupdatebuttons
	ThumbBarUpdateButtons(hWnd win.HWND, buttons []THUMBBUTTON)

	// [UnregisterTab] COM method.
	//
	// [UnregisterTab]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-itaskbarlist3-unregistertab
	UnregisterTab(hwndTab win.HWND)
}

ITaskbarList3 COM interface.

func NewITaskbarList3

func NewITaskbarList3(base com.IUnknown) ITaskbarList3

Constructs a COM object from the base IUnknown.

⚠️ You must defer ITaskbarList3.Release().

Example

taskbl := shell.NewITaskbarList3(
	com.CoCreateInstance(
		shellco.CLSID_TaskbarList, nil,
		comco.CLSCTX_INPROC_SERVER,
		shellco.IID_ITaskbarList3),
)
defer taskbl.Release()

type ITaskbarList4

type ITaskbarList4 interface {
	ITaskbarList3

	// [SetProperties] COM method.
	//
	// [SetProperties]: https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-itaskbarlist4-settabproperties
	SetProperties(hwndTab win.HWND, flags shellco.STPFLAG)
}

ITaskbarList4 COM interface.

func NewITaskbarList4

func NewITaskbarList4(base com.IUnknown) ITaskbarList4

Constructs a COM object from the base IUnknown.

⚠️ You must defer ITaskbarList4.Release().

Example

taskbl := shell.NewITaskbarList4(
	com.CoCreateInstance(
		shellco.CLSID_TaskbarList, nil,
		comco.CLSCTX_INPROC_SERVER,
		shellco.IID_ITaskbarList4),
)
defer taskbl.Release()

type THUMBBUTTON

type THUMBBUTTON struct {
	DwMask  shellco.THB
	IId     uint32
	IBitmap uint32
	HIcon   win.HICON

	DwFlags shellco.THBF
	// contains filtered or unexported fields
}

THUMBBUTTON struct.

func (*THUMBBUTTON) SetSzTip

func (tb *THUMBBUTTON) SetSzTip(val string)

func (*THUMBBUTTON) SzTip

func (tb *THUMBBUTTON) SzTip() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL