| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082 |
- // Copyright (c) The Perspex Project. All rights reserved.
- // Licensed under the MIT license. See licence.md file in the project root for full license information.
- using System;
- using System.Diagnostics.CodeAnalysis;
- using System.Runtime.CompilerServices;
- using System.Runtime.InteropServices;
- using System.Text;
- // ReSharper disable InconsistentNaming
- #pragma warning disable 169, 649
- namespace Perspex.Win32.Interop
- {
- [SuppressMessage("Microsoft.StyleCop.CSharp.NamingRules", "SA1305:FieldNamesMustNotUseHungarianNotation", Justification = "Using Win32 naming for consistency.")]
- [SuppressMessage("Microsoft.StyleCop.CSharp.NamingRules", "SA1307:AccessibleFieldsMustBeginWithUpperCaseLetter", Justification = "Using Win32 naming for consistency.")]
- [SuppressMessage("Microsoft.StyleCop.CSharp.NamingRules", "SA1310:FieldNamesMustNotContainUnderscore", Justification = "Using Win32 naming for consistency.")]
- [SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1600:Elements must be documented", Justification = "Look in Win32 docs.")]
- [SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1602:Enumeration items must be documented", Justification = "Look in Win32 docs.")]
- internal static class UnmanagedMethods
- {
- public const int CW_USEDEFAULT = unchecked((int)0x80000000);
- public delegate void TimerProc(IntPtr hWnd, uint uMsg, IntPtr nIDEvent, uint dwTime);
- public delegate IntPtr WndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
- public enum Cursor
- {
- IDC_ARROW = 32512,
- IDC_IBEAM = 32513,
- IDC_WAIT = 32514,
- IDC_CROSS = 32515,
- IDC_UPARROW = 32516,
- IDC_SIZE = 32640,
- IDC_ICON = 32641,
- IDC_SIZENWSE = 32642,
- IDC_SIZENESW = 32643,
- IDC_SIZEWE = 32644,
- IDC_SIZENS = 32645,
- IDC_SIZEALL = 32646,
- IDC_NO = 32648,
- IDC_HAND = 32649,
- IDC_APPSTARTING = 32650,
- IDC_HELP = 32651
- }
- public enum MouseActivate : int
- {
- MA_ACTIVATE = 1,
- MA_ACTIVATEANDEAT = 2,
- MA_NOACTIVATE = 3,
- MA_NOACTIVATEANDEAT = 4
- }
- [Flags]
- public enum SetWindowPosFlags : uint
- {
- SWP_ASYNCWINDOWPOS = 0x4000,
- SWP_DEFERERASE = 0x2000,
- SWP_DRAWFRAME = 0x0020,
- SWP_FRAMECHANGED = 0x0020,
- SWP_HIDEWINDOW = 0x0080,
- SWP_NOACTIVATE = 0x0010,
- SWP_NOCOPYBITS = 0x0100,
- SWP_NOMOVE = 0x0002,
- SWP_NOOWNERZORDER = 0x0200,
- SWP_NOREDRAW = 0x0008,
- SWP_NOREPOSITION = 0x0200,
- SWP_NOSENDCHANGING = 0x0400,
- SWP_NOSIZE = 0x0001,
- SWP_NOZORDER = 0x0004,
- SWP_SHOWWINDOW = 0x0040,
- SWP_RESIZE = SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER
- }
- public enum ShowWindowCommand
- {
- Hide = 0,
- Normal = 1,
- ShowMinimized = 2,
- Maximize = 3,
- ShowMaximized = 3,
- ShowNoActivate = 4,
- Show = 5,
- Minimize = 6,
- ShowMinNoActive = 7,
- ShowNA = 8,
- Restore = 9,
- ShowDefault = 10,
- ForceMinimize = 11
- }
- public enum SystemMetric
- {
- SM_CXSCREEN = 0, // 0x00
- SM_CYSCREEN = 1, // 0x01
- SM_CXVSCROLL = 2, // 0x02
- SM_CYHSCROLL = 3, // 0x03
- SM_CYCAPTION = 4, // 0x04
- SM_CXBORDER = 5, // 0x05
- SM_CYBORDER = 6, // 0x06
- SM_CXDLGFRAME = 7, // 0x07
- SM_CXFIXEDFRAME = 7, // 0x07
- SM_CYDLGFRAME = 8, // 0x08
- SM_CYFIXEDFRAME = 8, // 0x08
- SM_CYVTHUMB = 9, // 0x09
- SM_CXHTHUMB = 10, // 0x0A
- SM_CXICON = 11, // 0x0B
- SM_CYICON = 12, // 0x0C
- SM_CXCURSOR = 13, // 0x0D
- SM_CYCURSOR = 14, // 0x0E
- SM_CYMENU = 15, // 0x0F
- SM_CXFULLSCREEN = 16, // 0x10
- SM_CYFULLSCREEN = 17, // 0x11
- SM_CYKANJIWINDOW = 18, // 0x12
- SM_MOUSEPRESENT = 19, // 0x13
- SM_CYVSCROLL = 20, // 0x14
- SM_CXHSCROLL = 21, // 0x15
- SM_DEBUG = 22, // 0x16
- SM_SWAPBUTTON = 23, // 0x17
- SM_CXMIN = 28, // 0x1C
- SM_CYMIN = 29, // 0x1D
- SM_CXSIZE = 30, // 0x1E
- SM_CYSIZE = 31, // 0x1F
- SM_CXSIZEFRAME = 32, // 0x20
- SM_CXFRAME = 32, // 0x20
- SM_CYSIZEFRAME = 33, // 0x21
- SM_CYFRAME = 33, // 0x21
- SM_CXMINTRACK = 34, // 0x22
- SM_CYMINTRACK = 35, // 0x23
- SM_CXDOUBLECLK = 36, // 0x24
- SM_CYDOUBLECLK = 37, // 0x25
- SM_CXICONSPACING = 38, // 0x26
- SM_CYICONSPACING = 39, // 0x27
- SM_MENUDROPALIGNMENT = 40, // 0x28
- SM_PENWINDOWS = 41, // 0x29
- SM_DBCSENABLED = 42, // 0x2A
- SM_CMOUSEBUTTONS = 43, // 0x2B
- SM_SECURE = 44, // 0x2C
- SM_CXEDGE = 45, // 0x2D
- SM_CYEDGE = 46, // 0x2E
- SM_CXMINSPACING = 47, // 0x2F
- SM_CYMINSPACING = 48, // 0x30
- SM_CXSMICON = 49, // 0x31
- SM_CYSMICON = 50, // 0x32
- SM_CYSMCAPTION = 51, // 0x33
- SM_CXSMSIZE = 52, // 0x34
- SM_CYSMSIZE = 53, // 0x35
- SM_CXMENUSIZE = 54, // 0x36
- SM_CYMENUSIZE = 55, // 0x37
- SM_ARRANGE = 56, // 0x38
- SM_CXMINIMIZED = 57, // 0x39
- SM_CYMINIMIZED = 58, // 0x3A
- SM_CXMAXTRACK = 59, // 0x3B
- SM_CYMAXTRACK = 60, // 0x3C
- SM_CXMAXIMIZED = 61, // 0x3D
- SM_CYMAXIMIZED = 62, // 0x3E
- SM_NETWORK = 63, // 0x3F
- SM_CLEANBOOT = 67, // 0x43
- SM_CXDRAG = 68, // 0x44
- SM_CYDRAG = 69, // 0x45
- SM_SHOWSOUNDS = 70, // 0x46
- SM_CXMENUCHECK = 71, // 0x47
- SM_CYMENUCHECK = 72, // 0x48
- SM_SLOWMACHINE = 73, // 0x49
- SM_MIDEASTENABLED = 74, // 0x4A
- SM_MOUSEWHEELPRESENT = 75, // 0x4B
- SM_XVIRTUALSCREEN = 76, // 0x4C
- SM_YVIRTUALSCREEN = 77, // 0x4D
- SM_CXVIRTUALSCREEN = 78, // 0x4E
- SM_CYVIRTUALSCREEN = 79, // 0x4F
- SM_CMONITORS = 80, // 0x50
- SM_SAMEDISPLAYFORMAT = 81, // 0x51
- SM_IMMENABLED = 82, // 0x52
- SM_CXFOCUSBORDER = 83, // 0x53
- SM_CYFOCUSBORDER = 84, // 0x54
- SM_TABLETPC = 86, // 0x56
- SM_MEDIACENTER = 87, // 0x57
- SM_STARTER = 88, // 0x58
- SM_SERVERR2 = 89, // 0x59
- SM_MOUSEHORIZONTALWHEELPRESENT = 91, // 0x5B
- SM_CXPADDEDBORDER = 92, // 0x5C
- SM_DIGITIZER = 94, // 0x5E
- SM_MAXIMUMTOUCHES = 95, // 0x5F
- SM_REMOTESESSION = 0x1000, // 0x1000
- SM_SHUTTINGDOWN = 0x2000, // 0x2000
- SM_REMOTECONTROL = 0x2001, // 0x2001
- SM_CONVERTABLESLATEMODE = 0x2003,
- SM_SYSTEMDOCKED = 0x2004,
- }
- [Flags]
- public enum ModifierKeys
- {
- MK_CONTROL = 0x0008,
- MK_LBUTTON = 0x0001,
- MK_MBUTTON = 0x0010,
- MK_RBUTTON = 0x0002,
- MK_SHIFT = 0x0004,
- MK_XBUTTON1 = 0x0020,
- MK_XBUTTON2 = 0x0040
- }
- public enum WindowActivate
- {
- WA_INACTIVE,
- WA_ACTIVE,
- WA_CLICKACTIVE,
- }
- public enum HitTestValues
- {
- HTERROR = -2,
- HTTRANSPARENT = -1,
- HTNOWHERE = 0,
- HTCLIENT = 1,
- HTCAPTION = 2,
- HTSYSMENU = 3,
- HTGROWBOX = 4,
- HTMENU = 5,
- HTHSCROLL = 6,
- HTVSCROLL = 7,
- HTMINBUTTON = 8,
- HTMAXBUTTON = 9,
- HTLEFT = 10,
- HTRIGHT = 11,
- HTTOP = 12,
- HTTOPLEFT = 13,
- HTTOPRIGHT = 14,
- HTBOTTOM = 15,
- HTBOTTOMLEFT = 16,
- HTBOTTOMRIGHT = 17,
- HTBORDER = 18,
- HTOBJECT = 19,
- HTCLOSE = 20,
- HTHELP = 21
- }
- [Flags]
- public enum WindowStyles : uint
- {
- WS_BORDER = 0x800000,
- WS_CAPTION = 0xc00000,
- WS_CHILD = 0x40000000,
- WS_CLIPCHILDREN = 0x2000000,
- WS_CLIPSIBLINGS = 0x4000000,
- WS_DISABLED = 0x8000000,
- WS_DLGFRAME = 0x400000,
- WS_GROUP = 0x20000,
- WS_HSCROLL = 0x100000,
- WS_MAXIMIZE = 0x1000000,
- WS_MAXIMIZEBOX = 0x10000,
- WS_MINIMIZE = 0x20000000,
- WS_MINIMIZEBOX = 0x20000,
- WS_OVERLAPPED = 0x0,
- WS_OVERLAPPEDWINDOW = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_SIZEFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX,
- WS_POPUP = 0x80000000u,
- WS_POPUPWINDOW = WS_POPUP | WS_BORDER | WS_SYSMENU,
- WS_SIZEFRAME = 0x40000,
- WS_SYSMENU = 0x80000,
- WS_TABSTOP = 0x10000,
- WS_VISIBLE = 0x10000000,
- WS_VSCROLL = 0x200000,
- WS_EX_DLGMODALFRAME = 0x00000001,
- WS_EX_NOPARENTNOTIFY = 0x00000004,
- WS_EX_TOPMOST = 0x00000008,
- WS_EX_ACCEPTFILES = 0x00000010,
- WS_EX_TRANSPARENT = 0x00000020,
- WS_EX_MDICHILD = 0x00000040,
- WS_EX_TOOLWINDOW = 0x00000080,
- WS_EX_WINDOWEDGE = 0x00000100,
- WS_EX_CLIENTEDGE = 0x00000200,
- WS_EX_CONTEXTHELP = 0x00000400,
- WS_EX_RIGHT = 0x00001000,
- WS_EX_LEFT = 0x00000000,
- WS_EX_RTLREADING = 0x00002000,
- WS_EX_LTRREADING = 0x00000000,
- WS_EX_LEFTSCROLLBAR = 0x00004000,
- WS_EX_RIGHTSCROLLBAR = 0x00000000,
- WS_EX_CONTROLPARENT = 0x00010000,
- WS_EX_STATICEDGE = 0x00020000,
- WS_EX_APPWINDOW = 0x00040000,
- WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE,
- WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST,
- WS_EX_LAYERED = 0x00080000,
- WS_EX_NOINHERITLAYOUT = 0x00100000,
- WS_EX_LAYOUTRTL = 0x00400000,
- WS_EX_COMPOSITED = 0x02000000,
- WS_EX_NOACTIVATE = 0x08000000
- }
- public enum WindowsMessage : uint
- {
- WM_NULL = 0x0000,
- WM_CREATE = 0x0001,
- WM_DESTROY = 0x0002,
- WM_MOVE = 0x0003,
- WM_SIZE = 0x0005,
- WM_ACTIVATE = 0x0006,
- WM_SETFOCUS = 0x0007,
- WM_KILLFOCUS = 0x0008,
- WM_ENABLE = 0x000A,
- WM_SETREDRAW = 0x000B,
- WM_SETTEXT = 0x000C,
- WM_GETTEXT = 0x000D,
- WM_GETTEXTLENGTH = 0x000E,
- WM_PAINT = 0x000F,
- WM_CLOSE = 0x0010,
- WM_QUERYENDSESSION = 0x0011,
- WM_QUERYOPEN = 0x0013,
- WM_ENDSESSION = 0x0016,
- WM_QUIT = 0x0012,
- WM_ERASEBKGND = 0x0014,
- WM_SYSCOLORCHANGE = 0x0015,
- WM_SHOWWINDOW = 0x0018,
- WM_WININICHANGE = 0x001A,
- WM_SETTINGCHANGE = WM_WININICHANGE,
- WM_DEVMODECHANGE = 0x001B,
- WM_ACTIVATEAPP = 0x001C,
- WM_FONTCHANGE = 0x001D,
- WM_TIMECHANGE = 0x001E,
- WM_CANCELMODE = 0x001F,
- WM_SETCURSOR = 0x0020,
- WM_MOUSEACTIVATE = 0x0021,
- WM_CHILDACTIVATE = 0x0022,
- WM_QUEUESYNC = 0x0023,
- WM_GETMINMAXINFO = 0x0024,
- WM_PAINTICON = 0x0026,
- WM_ICONERASEBKGND = 0x0027,
- WM_NEXTDLGCTL = 0x0028,
- WM_SPOOLERSTATUS = 0x002A,
- WM_DRAWITEM = 0x002B,
- WM_MEASUREITEM = 0x002C,
- WM_DELETEITEM = 0x002D,
- WM_VKEYTOITEM = 0x002E,
- WM_CHARTOITEM = 0x002F,
- WM_SETFONT = 0x0030,
- WM_GETFONT = 0x0031,
- WM_SETHOTKEY = 0x0032,
- WM_GETHOTKEY = 0x0033,
- WM_QUERYDRAGICON = 0x0037,
- WM_COMPAREITEM = 0x0039,
- WM_GETOBJECT = 0x003D,
- WM_COMPACTING = 0x0041,
- WM_WINDOWPOSCHANGING = 0x0046,
- WM_WINDOWPOSCHANGED = 0x0047,
- WM_COPYDATA = 0x004A,
- WM_CANCELJOURNAL = 0x004B,
- WM_NOTIFY = 0x004E,
- WM_INPUTLANGCHANGEREQUEST = 0x0050,
- WM_INPUTLANGCHANGE = 0x0051,
- WM_TCARD = 0x0052,
- WM_HELP = 0x0053,
- WM_USERCHANGED = 0x0054,
- WM_NOTIFYFORMAT = 0x0055,
- WM_CONTEXTMENU = 0x007B,
- WM_STYLECHANGING = 0x007C,
- WM_STYLECHANGED = 0x007D,
- WM_DISPLAYCHANGE = 0x007E,
- WM_GETICON = 0x007F,
- WM_SETICON = 0x0080,
- WM_NCCREATE = 0x0081,
- WM_NCDESTROY = 0x0082,
- WM_NCCALCSIZE = 0x0083,
- WM_NCHITTEST = 0x0084,
- WM_NCPAINT = 0x0085,
- WM_NCACTIVATE = 0x0086,
- WM_GETDLGCODE = 0x0087,
- WM_SYNCPAINT = 0x0088,
- WM_NCMOUSEMOVE = 0x00A0,
- WM_NCLBUTTONDOWN = 0x00A1,
- WM_NCLBUTTONUP = 0x00A2,
- WM_NCLBUTTONDBLCLK = 0x00A3,
- WM_NCRBUTTONDOWN = 0x00A4,
- WM_NCRBUTTONUP = 0x00A5,
- WM_NCRBUTTONDBLCLK = 0x00A6,
- WM_NCMBUTTONDOWN = 0x00A7,
- WM_NCMBUTTONUP = 0x00A8,
- WM_NCMBUTTONDBLCLK = 0x00A9,
- WM_NCXBUTTONDOWN = 0x00AB,
- WM_NCXBUTTONUP = 0x00AC,
- WM_NCXBUTTONDBLCLK = 0x00AD,
- WM_INPUT_DEVICE_CHANGE = 0x00FE,
- WM_INPUT = 0x00FF,
- WM_KEYFIRST = 0x0100,
- WM_KEYDOWN = 0x0100,
- WM_KEYUP = 0x0101,
- WM_CHAR = 0x0102,
- WM_DEADCHAR = 0x0103,
- WM_SYSKEYDOWN = 0x0104,
- WM_SYSKEYUP = 0x0105,
- WM_SYSCHAR = 0x0106,
- WM_SYSDEADCHAR = 0x0107,
- WM_UNICHAR = 0x0109,
- WM_KEYLAST = 0x0109,
- WM_IME_STARTCOMPOSITION = 0x010D,
- WM_IME_ENDCOMPOSITION = 0x010E,
- WM_IME_COMPOSITION = 0x010F,
- WM_IME_KEYLAST = 0x010F,
- WM_INITDIALOG = 0x0110,
- WM_COMMAND = 0x0111,
- WM_SYSCOMMAND = 0x0112,
- WM_TIMER = 0x0113,
- WM_HSCROLL = 0x0114,
- WM_VSCROLL = 0x0115,
- WM_INITMENU = 0x0116,
- WM_INITMENUPOPUP = 0x0117,
- WM_MENUSELECT = 0x011F,
- WM_MENUCHAR = 0x0120,
- WM_ENTERIDLE = 0x0121,
- WM_MENURBUTTONUP = 0x0122,
- WM_MENUDRAG = 0x0123,
- WM_MENUGETOBJECT = 0x0124,
- WM_UNINITMENUPOPUP = 0x0125,
- WM_MENUCOMMAND = 0x0126,
- WM_CHANGEUISTATE = 0x0127,
- WM_UPDATEUISTATE = 0x0128,
- WM_QUERYUISTATE = 0x0129,
- WM_CTLCOLORMSGBOX = 0x0132,
- WM_CTLCOLOREDIT = 0x0133,
- WM_CTLCOLORLISTBOX = 0x0134,
- WM_CTLCOLORBTN = 0x0135,
- WM_CTLCOLORDLG = 0x0136,
- WM_CTLCOLORSCROLLBAR = 0x0137,
- WM_CTLCOLORSTATIC = 0x0138,
- WM_MOUSEFIRST = 0x0200,
- WM_MOUSEMOVE = 0x0200,
- WM_LBUTTONDOWN = 0x0201,
- WM_LBUTTONUP = 0x0202,
- WM_LBUTTONDBLCLK = 0x0203,
- WM_RBUTTONDOWN = 0x0204,
- WM_RBUTTONUP = 0x0205,
- WM_RBUTTONDBLCLK = 0x0206,
- WM_MBUTTONDOWN = 0x0207,
- WM_MBUTTONUP = 0x0208,
- WM_MBUTTONDBLCLK = 0x0209,
- WM_MOUSEWHEEL = 0x020A,
- WM_XBUTTONDOWN = 0x020B,
- WM_XBUTTONUP = 0x020C,
- WM_XBUTTONDBLCLK = 0x020D,
- WM_MOUSEHWHEEL = 0x020E,
- WM_MOUSELAST = 0x020E,
- WM_PARENTNOTIFY = 0x0210,
- WM_ENTERMENULOOP = 0x0211,
- WM_EXITMENULOOP = 0x0212,
- WM_NEXTMENU = 0x0213,
- WM_SIZING = 0x0214,
- WM_CAPTURECHANGED = 0x0215,
- WM_MOVING = 0x0216,
- WM_POWERBROADCAST = 0x0218,
- WM_DEVICECHANGE = 0x0219,
- WM_MDICREATE = 0x0220,
- WM_MDIDESTROY = 0x0221,
- WM_MDIACTIVATE = 0x0222,
- WM_MDIRESTORE = 0x0223,
- WM_MDINEXT = 0x0224,
- WM_MDIMAXIMIZE = 0x0225,
- WM_MDITILE = 0x0226,
- WM_MDICASCADE = 0x0227,
- WM_MDIICONARRANGE = 0x0228,
- WM_MDIGETACTIVE = 0x0229,
- WM_MDISETMENU = 0x0230,
- WM_ENTERSIZEMOVE = 0x0231,
- WM_EXITSIZEMOVE = 0x0232,
- WM_DROPFILES = 0x0233,
- WM_MDIREFRESHMENU = 0x0234,
- WM_IME_SETCONTEXT = 0x0281,
- WM_IME_NOTIFY = 0x0282,
- WM_IME_CONTROL = 0x0283,
- WM_IME_COMPOSITIONFULL = 0x0284,
- WM_IME_SELECT = 0x0285,
- WM_IME_CHAR = 0x0286,
- WM_IME_REQUEST = 0x0288,
- WM_IME_KEYDOWN = 0x0290,
- WM_IME_KEYUP = 0x0291,
- WM_MOUSEHOVER = 0x02A1,
- WM_MOUSELEAVE = 0x02A3,
- WM_NCMOUSEHOVER = 0x02A0,
- WM_NCMOUSELEAVE = 0x02A2,
- WM_WTSSESSION_CHANGE = 0x02B1,
- WM_TABLET_FIRST = 0x02c0,
- WM_TABLET_LAST = 0x02df,
- WM_DPICHANGED = 0x02E0,
- WM_CUT = 0x0300,
- WM_COPY = 0x0301,
- WM_PASTE = 0x0302,
- WM_CLEAR = 0x0303,
- WM_UNDO = 0x0304,
- WM_RENDERFORMAT = 0x0305,
- WM_RENDERALLFORMATS = 0x0306,
- WM_DESTROYCLIPBOARD = 0x0307,
- WM_DRAWCLIPBOARD = 0x0308,
- WM_PAINTCLIPBOARD = 0x0309,
- WM_VSCROLLCLIPBOARD = 0x030A,
- WM_SIZECLIPBOARD = 0x030B,
- WM_ASKCBFORMATNAME = 0x030C,
- WM_CHANGECBCHAIN = 0x030D,
- WM_HSCROLLCLIPBOARD = 0x030E,
- WM_QUERYNEWPALETTE = 0x030F,
- WM_PALETTEISCHANGING = 0x0310,
- WM_PALETTECHANGED = 0x0311,
- WM_HOTKEY = 0x0312,
- WM_PRINT = 0x0317,
- WM_PRINTCLIENT = 0x0318,
- WM_APPCOMMAND = 0x0319,
- WM_THEMECHANGED = 0x031A,
- WM_CLIPBOARDUPDATE = 0x031D,
- WM_DWMCOMPOSITIONCHANGED = 0x031E,
- WM_DWMNCRENDERINGCHANGED = 0x031F,
- WM_DWMCOLORIZATIONCOLORCHANGED = 0x0320,
- WM_DWMWINDOWMAXIMIZEDCHANGE = 0x0321,
- WM_GETTITLEBARINFOEX = 0x033F,
- WM_HANDHELDFIRST = 0x0358,
- WM_HANDHELDLAST = 0x035F,
- WM_AFXFIRST = 0x0360,
- WM_AFXLAST = 0x037F,
- WM_PENWINFIRST = 0x0380,
- WM_PENWINLAST = 0x038F,
- WM_APP = 0x8000,
- WM_USER = 0x0400,
- WM_DISPATCH_WORK_ITEM = WM_USER,
- }
- [DllImport("user32.dll", SetLastError = true)]
- public static extern bool AdjustWindowRectEx(ref RECT lpRect, uint dwStyle, bool bMenu, uint dwExStyle);
- [DllImport("user32.dll")]
- public static extern IntPtr BeginPaint(IntPtr hwnd, out PAINTSTRUCT lpPaint);
- [DllImport("user32.dll")]
- public static extern bool ClientToScreen(IntPtr hWnd, ref POINT lpPoint);
- [DllImport("user32.dll", SetLastError = true)]
- public static extern IntPtr CreateWindowEx(
- int dwExStyle,
- uint lpClassName,
- string lpWindowName,
- uint dwStyle,
- int x,
- int y,
- int nWidth,
- int nHeight,
- IntPtr hWndParent,
- IntPtr hMenu,
- IntPtr hInstance,
- IntPtr lpParam);
- [DllImport("user32.dll", EntryPoint = "DefWindowProcW")]
- public static extern IntPtr DefWindowProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);
- [DllImport("user32.dll", EntryPoint = "DispatchMessageW")]
- public static extern IntPtr DispatchMessage(ref MSG lpmsg);
- [DllImport("user32.dll", SetLastError = true)]
- public static extern bool DestroyWindow(IntPtr hwnd);
- [DllImport("user32.dll")]
- public static extern bool EnableWindow(IntPtr hWnd, bool bEnable);
- [DllImport("user32.dll")]
- public static extern bool EndPaint(IntPtr hWnd, ref PAINTSTRUCT lpPaint);
- [DllImport("user32.dll")]
- public static extern uint GetCaretBlinkTime();
- [DllImport("user32.dll")]
- public static extern bool GetClientRect(IntPtr hwnd, out RECT lpRect);
- [DllImport("user32.dll")]
- public static extern bool GetCursorPos(out POINT lpPoint);
- [DllImport("user32.dll")]
- public static extern uint GetDoubleClickTime();
- [DllImport("user32.dll")]
- public static extern bool GetKeyboardState(byte[] lpKeyState);
- [DllImport("user32.dll", EntryPoint = "GetMessageW")]
- public static extern sbyte GetMessage(out MSG lpMsg, IntPtr hWnd, uint wMsgFilterMin, uint wMsgFilterMax);
- [DllImport("user32.dll")]
- public static extern int GetMessageTime();
- [DllImport("kernel32.dll")]
- public static extern IntPtr GetModuleHandle(string lpModuleName);
- [DllImport("user32.dll")]
- public static extern int GetSystemMetrics(SystemMetric smIndex);
- [DllImport("user32.dll", SetLastError = true)]
- public static extern uint GetWindowLong(IntPtr hWnd, int nIndex);
- [DllImport("user32.dll", SetLastError = true)]
- public static extern uint SetWindowLong(IntPtr hWnd, int nIndex, uint value);
- [DllImport("user32.dll", SetLastError = true)]
- public static extern bool GetWindowPlacement(IntPtr hWnd, ref WINDOWPLACEMENT lpwndpl);
- [DllImport("user32.dll")]
- public static extern bool GetWindowRect(IntPtr hwnd, out RECT lpRect);
- [DllImport("user32.dll")]
- public static extern bool GetUpdateRect(IntPtr hwnd, out RECT lpRect, bool bErase);
- [DllImport("user32.dll")]
- public static extern bool InvalidateRect(IntPtr hWnd, ref RECT lpRect, bool bErase);
- [DllImport("user32.dll")]
- public static extern bool IsWindowEnabled(IntPtr hWnd);
- [DllImport("user32.dll")]
- public static extern bool IsWindowUnicode(IntPtr hWnd);
- [DllImport("user32.dll")]
- public static extern bool KillTimer(IntPtr hWnd, IntPtr uIDEvent);
- [DllImport("user32.dll")]
- public static extern IntPtr LoadCursor(IntPtr hInstance, IntPtr lpCursorName);
- [DllImport("user32.dll")]
- public static extern bool PeekMessage(out MSG lpMsg, IntPtr hWnd, uint wMsgFilterMin, uint wMsgFilterMax, uint wRemoveMsg);
- [DllImport("user32.dll")]
- public static extern IntPtr PostMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);
- [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode, EntryPoint = "RegisterClassExW")]
- public static extern ushort RegisterClassEx(ref WNDCLASSEX lpwcx);
- [DllImport("user32.dll")]
- public static extern bool ReleaseCapture();
- [DllImport("user32.dll")]
- public static extern bool ScreenToClient(IntPtr hWnd, ref POINT lpPoint);
- [DllImport("user32.dll", SetLastError = true)]
- public static extern IntPtr SetActiveWindow(IntPtr hWnd);
- [DllImport("user32.dll")]
- public static extern IntPtr SetCapture(IntPtr hWnd);
- [DllImport("user32.dll")]
- public static extern IntPtr SetTimer(IntPtr hWnd, IntPtr nIDEvent, uint uElapse, TimerProc lpTimerFunc);
- [DllImport("user32.dll")]
- public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int cx, int cy, SetWindowPosFlags uFlags);
- [DllImport("user32.dll")]
- public static extern bool SetParent(IntPtr hWnd, IntPtr hWndNewParent);
- [DllImport("user32.dll")]
- public static extern bool ShowWindow(IntPtr hWnd, ShowWindowCommand nCmdShow);
- [DllImport("user32.dll")]
- public static extern int ToUnicode(
- uint virtualKeyCode,
- uint scanCode,
- byte[] keyboardState,
- [Out, MarshalAs(UnmanagedType.LPWStr, SizeConst = 64)]
- StringBuilder receivingBuffer,
- int bufferSize,
- uint flags);
- [DllImport("user32.dll", SetLastError = true)]
- public static extern bool TrackMouseEvent(ref TRACKMOUSEEVENT lpEventTrack);
- [DllImport("user32.dll")]
- public static extern bool TranslateMessage(ref MSG lpMsg);
- [DllImport("user32.dll")]
- public static extern bool UnregisterClass(string lpClassName, IntPtr hInstance);
- [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
- public static extern bool SetWindowText(IntPtr hwnd, string lpString);
- public enum ClassLongIndex : int
- {
- GCL_HCURSOR = -12,
- GCL_HICON = -14
- }
- [DllImport("user32.dll", EntryPoint = "SetClassLongPtr")]
- private static extern IntPtr SetClassLong64(IntPtr hWnd, ClassLongIndex nIndex, IntPtr dwNewLong);
- [DllImport("user32.dll", EntryPoint = "SetClassLong")]
- private static extern IntPtr SetClassLong32(IntPtr hWnd, ClassLongIndex nIndex, IntPtr dwNewLong);
- public static IntPtr SetClassLong(IntPtr hWnd, ClassLongIndex nIndex, IntPtr dwNewLong)
- {
- if (IntPtr.Size == 4)
- {
- return SetClassLong32(hWnd, nIndex, dwNewLong);
- }
- return SetClassLong64(hWnd, nIndex, dwNewLong);
- }
-
- [ComImport, ClassInterface(ClassInterfaceType.None), TypeLibType(TypeLibTypeFlags.FCanCreate), Guid("DC1C5A9C-E88A-4DDE-A5A1-60F82A20AEF7")]
- internal class FileOpenDialogRCW { }
-
- [DllImport("shell32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
- internal static extern int SHCreateItemFromParsingName([MarshalAs(UnmanagedType.LPWStr)] string pszPath, IntPtr pbc, ref Guid riid, [MarshalAs(UnmanagedType.Interface)] out IShellItem ppv);
- [DllImport("user32.dll", SetLastError = true)]
- public static extern bool OpenClipboard(IntPtr hWndOwner);
- [DllImport("user32.dll", SetLastError = true)]
- public static extern bool CloseClipboard();
- [DllImport("user32.dll")]
- public static extern bool EmptyClipboard();
- [DllImport("user32.dll")]
- public static extern IntPtr GetClipboardData(ClipboardFormat uFormat);
- [DllImport("user32.dll")]
- public static extern IntPtr SetClipboardData(ClipboardFormat uFormat, IntPtr hMem);
- [DllImport("kernel32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
- public static extern IntPtr GlobalLock(IntPtr handle);
- [DllImport("kernel32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
- public static extern bool GlobalUnlock(IntPtr handle);
- [DllImport("kernel32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
- public static extern IntPtr GlobalAlloc(int uFlags, int dwBytes);
- [DllImport("kernel32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
- public static extern IntPtr GlobalFree(IntPtr hMem);
- [DllImport("comdlg32.dll", CharSet = CharSet.Unicode, EntryPoint = "GetSaveFileNameW")]
- public static extern bool GetSaveFileName(IntPtr lpofn);
- [DllImport("comdlg32.dll", CharSet = CharSet.Unicode, EntryPoint = "GetOpenFileNameW")]
- public static extern bool GetOpenFileName(IntPtr lpofn);
- [DllImport("comdlg32.dll")]
- public static extern int CommDlgExtendedError();
- [DllImport("shcore.dll")]
- public static extern void SetProcessDpiAwareness(PROCESS_DPI_AWARENESS value);
- [DllImport("shcore.dll")]
- public static extern long GetDpiForMonitor(IntPtr hmonitor, MONITOR_DPI_TYPE dpiType, out uint dpiX, out uint dpiY);
- [DllImport("shcore.dll")]
- public static extern void GetScaleFactorForMonitor(IntPtr hMon, out uint pScale);
- [DllImport("user32.dll")]
- public static extern IntPtr MonitorFromPoint(POINT pt, MONITOR dwFlags);
- [DllImport("user32.dll")]
- public static extern IntPtr MonitorFromWindow(IntPtr hwnd, MONITOR dwFlags);
- public enum MONITOR
- {
- MONITOR_DEFAULTTONULL = 0x00000000,
- MONITOR_DEFAULTTOPRIMARY = 0x00000001,
- MONITOR_DEFAULTTONEAREST = 0x00000002,
- }
- public enum PROCESS_DPI_AWARENESS
- {
- PROCESS_DPI_UNAWARE = 0,
- PROCESS_SYSTEM_DPI_AWARE = 1,
- PROCESS_PER_MONITOR_DPI_AWARE = 2
- }
- public enum MONITOR_DPI_TYPE
- {
- MDT_EFFECTIVE_DPI = 0,
- MDT_ANGULAR_DPI = 1,
- MDT_RAW_DPI = 2,
- MDT_DEFAULT = MDT_EFFECTIVE_DPI
- }
- public enum ClipboardFormat
- {
- CF_TEXT = 1,
- CF_UNICODETEXT = 13
- }
- public struct MSG
- {
- public IntPtr hwnd;
- public uint message;
- public IntPtr wParam;
- public IntPtr lParam;
- public uint time;
- public POINT pt;
- }
- [StructLayout(LayoutKind.Sequential)]
- public struct PAINTSTRUCT
- {
- public IntPtr hdc;
- public bool fErase;
- public RECT rcPaint;
- public bool fRestore;
- public bool fIncUpdate;
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
- public byte[] rgbReserved;
- }
- public struct POINT
- {
- public int X;
- public int Y;
- }
- public struct RECT
- {
- public int left;
- public int top;
- public int right;
- public int bottom;
- }
- public struct TRACKMOUSEEVENT
- {
- public int cbSize;
- public uint dwFlags;
- public IntPtr hwndTrack;
- public int dwHoverTime;
- }
- [StructLayout(LayoutKind.Sequential)]
- public struct WINDOWPLACEMENT
- {
- /// <summary>
- /// The length of the structure, in bytes. Before calling the GetWindowPlacement or SetWindowPlacement functions, set this member to sizeof(WINDOWPLACEMENT).
- /// <para>
- /// GetWindowPlacement and SetWindowPlacement fail if this member is not set correctly.
- /// </para>
- /// </summary>
- public int Length;
- /// <summary>
- /// Specifies flags that control the position of the minimized window and the method by which the window is restored.
- /// </summary>
- public int Flags;
- /// <summary>
- /// The current show state of the window.
- /// </summary>
- public ShowWindowCommand ShowCmd;
- /// <summary>
- /// The coordinates of the window's upper-left corner when the window is minimized.
- /// </summary>
- public POINT MinPosition;
- /// <summary>
- /// The coordinates of the window's upper-left corner when the window is maximized.
- /// </summary>
- public POINT MaxPosition;
- /// <summary>
- /// The window's coordinates when the window is in the restored position.
- /// </summary>
- public RECT NormalPosition;
- /// <summary>
- /// Gets the default (empty) value.
- /// </summary>
- public static WINDOWPLACEMENT Default
- {
- get
- {
- WINDOWPLACEMENT result = new WINDOWPLACEMENT();
- result.Length = Marshal.SizeOf(result);
- return result;
- }
- }
- }
- [StructLayout(LayoutKind.Sequential)]
- public struct WNDCLASSEX
- {
- public int cbSize;
- public int style;
- public WndProc lpfnWndProc;
- public int cbClsExtra;
- public int cbWndExtra;
- public IntPtr hInstance;
- public IntPtr hIcon;
- public IntPtr hCursor;
- public IntPtr hbrBackground;
- public string lpszMenuName;
- public string lpszClassName;
- public IntPtr hIconSm;
- }
- [Flags]
- public enum OpenFileNameFlags
- {
- OFN_ALLOWMULTISELECT = 0x00000200,
- OFN_EXPLORER = 0x00080000,
- OFN_HIDEREADONLY = 0x00000004,
- OFN_NOREADONLYRETURN = 0x00008000,
- OFN_OVERWRITEPROMPT = 0x00000002
- }
- public enum HRESULT : long
- {
- S_FALSE = 0x0001,
- S_OK = 0x0000,
- E_INVALIDARG = 0x80070057,
- E_OUTOFMEMORY = 0x8007000E
- }
- public const uint SIGDN_FILESYSPATH = 0x80058000;
- [Flags]
- internal enum FOS : uint
- {
- FOS_OVERWRITEPROMPT = 0x00000002,
- FOS_STRICTFILETYPES = 0x00000004,
- FOS_NOCHANGEDIR = 0x00000008,
- FOS_PICKFOLDERS = 0x00000020,
- FOS_FORCEFILESYSTEM = 0x00000040, // Ensure that items returned are filesystem items.
- FOS_ALLNONSTORAGEITEMS = 0x00000080, // Allow choosing items that have no storage.
- FOS_NOVALIDATE = 0x00000100,
- FOS_ALLOWMULTISELECT = 0x00000200,
- FOS_PATHMUSTEXIST = 0x00000800,
- FOS_FILEMUSTEXIST = 0x00001000,
- FOS_CREATEPROMPT = 0x00002000,
- FOS_SHAREAWARE = 0x00004000,
- FOS_NOREADONLYRETURN = 0x00008000,
- FOS_NOTESTFILECREATE = 0x00010000,
- FOS_HIDEMRUPLACES = 0x00020000,
- FOS_HIDEPINNEDPLACES = 0x00040000,
- FOS_NODEREFERENCELINKS = 0x00100000,
- FOS_DONTADDTORECENT = 0x02000000,
- FOS_FORCESHOWHIDDEN = 0x10000000,
- FOS_DEFAULTNOMINIMODE = 0x20000000
- }
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
- public struct OpenFileName
- {
- public int lStructSize;
- public IntPtr hwndOwner;
- public IntPtr hInstance;
- public IntPtr lpstrFilter;
- public IntPtr lpstrCustomFilter;
- public int nMaxCustFilter;
- public int nFilterIndex;
- public IntPtr lpstrFile;
- public int nMaxFile;
- public IntPtr lpstrFileTitle;
- public int nMaxFileTitle;
- public IntPtr lpstrInitialDir;
- public IntPtr lpstrTitle;
- public OpenFileNameFlags Flags;
- private readonly ushort Unused;
- private readonly ushort Unused2;
- public IntPtr lpstrDefExt;
- public IntPtr lCustData;
- public IntPtr lpfnHook;
- public IntPtr lpTemplateName;
- public IntPtr reservedPtr;
- public int reservedInt;
- public int flagsEx;
- }
- }
- [ComImport(), Guid("42F85136-DB7E-439C-85F1-E4075D135FC8"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
- internal interface IFileDialog
- {
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- [PreserveSig()]
- uint Show([In, Optional] IntPtr hwndOwner); //IModalWindow
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint SetFileTypes([In] uint cFileTypes, [In, MarshalAs(UnmanagedType.LPArray)] IntPtr rgFilterSpec);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint SetFileTypeIndex([In] uint iFileType);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint GetFileTypeIndex(out uint piFileType);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint Advise([In, MarshalAs(UnmanagedType.Interface)] IntPtr pfde, out uint pdwCookie);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint Unadvise([In] uint dwCookie);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint SetOptions([In] uint fos);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint GetOptions(out uint fos);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- void SetDefaultFolder([In, MarshalAs(UnmanagedType.Interface)] IShellItem psi);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint SetFolder([In, MarshalAs(UnmanagedType.Interface)] IShellItem psi);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint GetFolder([MarshalAs(UnmanagedType.Interface)] out IShellItem ppsi);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint GetCurrentSelection([MarshalAs(UnmanagedType.Interface)] out IShellItem ppsi);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint SetFileName([In, MarshalAs(UnmanagedType.LPWStr)] string pszName);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint GetFileName([MarshalAs(UnmanagedType.LPWStr)] out string pszName);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint SetTitle([In, MarshalAs(UnmanagedType.LPWStr)] string pszTitle);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint SetOkButtonLabel([In, MarshalAs(UnmanagedType.LPWStr)] string pszText);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint SetFileNameLabel([In, MarshalAs(UnmanagedType.LPWStr)] string pszLabel);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint GetResult([MarshalAs(UnmanagedType.Interface)] out IShellItem ppsi);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint AddPlace([In, MarshalAs(UnmanagedType.Interface)] IShellItem psi, uint fdap);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint SetDefaultExtension([In, MarshalAs(UnmanagedType.LPWStr)] string pszDefaultExtension);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint Close([MarshalAs(UnmanagedType.Error)] uint hr);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint SetClientGuid([In] ref Guid guid);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint ClearClientData();
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint SetFilter([MarshalAs(UnmanagedType.Interface)] IntPtr pFilter);
- }
- [ComImport, Guid("43826D1E-E718-42EE-BC55-A1E261C37BFE"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
- internal interface IShellItem
- {
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint BindToHandler([In] IntPtr pbc, [In] ref Guid rbhid, [In] ref Guid riid, [Out, MarshalAs(UnmanagedType.Interface)] out IntPtr ppvOut);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint GetParent([MarshalAs(UnmanagedType.Interface)] out IShellItem ppsi);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint GetDisplayName([In] uint sigdnName, out IntPtr ppszName);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint GetAttributes([In] uint sfgaoMask, out uint psfgaoAttribs);
- [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
- uint Compare([In, MarshalAs(UnmanagedType.Interface)] IShellItem psi, [In] uint hint, out int piOrder);
- }
- }
|