ShellApi.cs :  » Development » NDoc » ShellLib » C# / CSharp Open Source

Home
C# / CSharp Open Source
1.2.6.4 mono .net core
2.2.6.4 mono core
3.Aspect Oriented Frameworks
4.Bloggers
5.Build Systems
6.Business Application
7.Charting Reporting Tools
8.Chat Servers
9.Code Coverage Tools
10.Content Management Systems CMS
11.CRM ERP
12.Database
13.Development
14.Email
15.Forum
16.Game
17.GIS
18.GUI
19.IDEs
20.Installers Generators
21.Inversion of Control Dependency Injection
22.Issue Tracking
23.Logging Tools
24.Message
25.Mobile
26.Network Clients
27.Network Servers
28.Office
29.PDF
30.Persistence Frameworks
31.Portals
32.Profilers
33.Project Management
34.RSS RDF
35.Rule Engines
36.Script
37.Search Engines
38.Sound Audio
39.Source Control
40.SQL Clients
41.Template Engines
42.Testing
43.UML
44.Web Frameworks
45.Web Service
46.Web Testing
47.Wiki Engines
48.Windows Presentation Foundation
49.Workflows
50.XML Parsers
C# / C Sharp
C# / C Sharp by API
C# / CSharp Tutorial
C# / CSharp Open Source » Development » NDoc 
NDoc » ShellLib » ShellApi.cs
using System;
using System.Text;
using System.Runtime.InteropServices;


namespace ShellLib{
    internal class ShellApi
    {
        public delegate Int32 BrowseCallbackProc(IntPtr hwnd, UInt32 uMsg, Int32 lParam, Int32 lpData);
        
        // Contains parameters for the SHBrowseForFolder function and receives information about the folder selected 
        // by the user.
        [StructLayout(LayoutKind.Sequential)]
        public struct BROWSEINFO
        {
            public IntPtr hwndOwner;                // Handle to the owner window for the dialog box.
            
            public IntPtr pidlRoot;                 // Pointer to an item identifier list (PIDL) specifying the 
                                                    // location of the root folder from which to start browsing.
            
            [MarshalAs(UnmanagedType.LPStr)]        // Address of a buffer to receive the display name of the 
            public String pszDisplayName;           // folder selected by the user.
                                                                
            [MarshalAs(UnmanagedType.LPStr)]        // Address of a null-terminated string that is displayed 
            public String lpszTitle;                // above the tree view control in the dialog box.
                                                    
            public UInt32 ulFlags;                  // Flags specifying the options for the dialog box. 
            
            [MarshalAs(UnmanagedType.FunctionPtr)]  // Address of an application-defined function that the 
            public BrowseCallbackProc lpfn;         // dialog box calls when an event occurs.
                                                                
            public Int32 lParam;                    // Application-defined value that the dialog box passes to 
                                                    // the callback function
            
            public Int32 iImage;                    // Variable to receive the image associated with the selected folder.
        }

        [StructLayout(LayoutKind.Explicit)]
        public struct STRRET
        {
            [FieldOffset(0)]
            public UInt32 uType;                    // One of the STRRET_* values

            [FieldOffset(4)]
            public IntPtr pOleStr;                  // must be freed by caller of GetDisplayNameOf

            [FieldOffset(4)]
            public IntPtr pStr;                     // NOT USED

            [FieldOffset(4)]
            public UInt32 uOffset;                  // Offset into SHITEMID

            [FieldOffset(4)]
            public IntPtr cStr;                     // Buffer to fill in (ANSI)
        }

        // Retrieves a pointer to the Shell's IMalloc interface.
        [DllImport("shell32.dll")]
        public static extern Int32 SHGetMalloc(
            out IntPtr hObject);    // Address of a pointer that receives the Shell's IMalloc interface pointer. 

        // Retrieves the path of a folder as an PIDL.
        [DllImport("shell32.dll")]
        public static extern Int32 SHGetFolderLocation(
            IntPtr hwndOwner,       // Handle to the owner window.
            Int32 nFolder,          // A CSIDL value that identifies the folder to be located.
            IntPtr hToken,          // Token that can be used to represent a particular user.
            UInt32 dwReserved,      // Reserved.
            out IntPtr ppidl);      // Address of a pointer to an item identifier list structure 
                                    // specifying the folder's location relative to the root of the namespace 
                                    // (the desktop). 

        // Converts an item identifier list to a file system path. 
        [DllImport("shell32.dll")]
        public static extern Int32 SHGetPathFromIDList(
            IntPtr pidl,            // Address of an item identifier list that specifies a file or directory location 
                                    // relative to the root of the namespace (the desktop). 
            StringBuilder pszPath); // Address of a buffer to receive the file system path.

        
        // Takes the CSIDL of a folder and returns the pathname.
        [DllImport("shell32.dll")]
        public static extern Int32 SHGetFolderPath(
            IntPtr hwndOwner,       // Handle to an owner window.
            Int32 nFolder,          // A CSIDL value that identifies the folder whose path is to be retrieved.
            IntPtr hToken,          // An access token that can be used to represent a particular user.
            UInt32 dwFlags,         // Flags to specify which path is to be returned. It is used for cases where 
                                    // the folder associated with a CSIDL may be moved or renamed by the user. 
            StringBuilder pszPath); // Pointer to a null-terminated string which will receive the path.

        // Translates a Shell namespace object's display name into an item identifier list and returns the attributes 
        // of the object. This function is the preferred method to convert a string to a pointer to an item 
        // identifier list (PIDL). 
        [DllImport("shell32.dll")]
        public static extern Int32 SHParseDisplayName(
            [MarshalAs(UnmanagedType.LPWStr)]
            String pszName,         // Pointer to a zero-terminated wide string that contains the display name 
                                    // to parse. 
            IntPtr pbc,             // Optional bind context that controls the parsing operation. This parameter 
                                    // is normally set to NULL.
            out IntPtr ppidl,       // Address of a pointer to a variable of type ITEMIDLIST that receives the item
                                    // identifier list for the object.
            UInt32 sfgaoIn,         // ULONG value that specifies the attributes to query.
            out UInt32 psfgaoOut);  // Pointer to a ULONG. On return, those attributes that are true for the 
                                    // object and were requested in sfgaoIn will be set. 


        // Retrieves the IShellFolder interface for the desktop folder, which is the root of the Shell's namespace. 
        [DllImport("shell32.dll")]
        public static extern Int32 SHGetDesktopFolder(
            out IntPtr ppshf);      // Address that receives an IShellFolder interface pointer for the 
                                    // desktop folder.

        // This function takes the fully-qualified pointer to an item identifier list (PIDL) of a namespace object, 
        // and returns a specified interface pointer on the parent object.
        [DllImport("shell32.dll")]
        public static extern Int32 SHBindToParent(
            IntPtr pidl,            // The item's PIDL. 
            [MarshalAs(UnmanagedType.LPStruct)]
            Guid riid,              // The REFIID of one of the interfaces exposed by the item's parent object. 
            out IntPtr ppv,         // A pointer to the interface specified by riid. You must release the object when 
                                    // you are finished. 
            ref IntPtr ppidlLast);  // The item's PIDL relative to the parent folder. This PIDL can be used with many
                                    // of the methods supported by the parent folder's interfaces. If you set ppidlLast 
                                    // to NULL, the PIDL will not be returned. 

        // Accepts a STRRET structure returned by IShellFolder::GetDisplayNameOf that contains or points to a 
        // string, and then returns that string as a BSTR.
        [DllImport("shlwapi.dll")]
        public static extern Int32 StrRetToBSTR(
            ref STRRET pstr,        // Pointer to a STRRET structure.
            IntPtr pidl,            // Pointer to an ITEMIDLIST uniquely identifying a file object or subfolder relative
                                    // to the parent folder.
            [MarshalAs(UnmanagedType.BStr)]
            out String pbstr);      // Pointer to a variable of type BSTR that contains the converted string.

        // Takes a STRRET structure returned by IShellFolder::GetDisplayNameOf, converts it to a string, and 
        // places the result in a buffer. 
        [DllImport("shlwapi.dll")]
        public static extern Int32 StrRetToBuf(
            ref STRRET pstr,        // Pointer to the STRRET structure. When the function returns, this pointer will no
                                    // longer be valid.
            IntPtr pidl,            // Pointer to the item's ITEMIDLIST structure.
            StringBuilder pszBuf,   // Buffer to hold the display name. It will be returned as a null-terminated
                                    // string. If cchBuf is too small, the name will be truncated to fit. 
            UInt32 cchBuf);         // Size of pszBuf, in characters. If cchBuf is too small, the string will be 
                                    // truncated to fit. 



        // Displays a dialog box that enables the user to select a Shell folder. 
        [DllImport("shell32.dll")]
        public static extern IntPtr SHBrowseForFolder(
            ref BROWSEINFO lbpi);   // Pointer to a BROWSEINFO structure that contains information used to display 
                                    // the dialog box. 

        public enum CSIDL 
        {
            CSIDL_FLAG_CREATE               = (0x8000), // Version 5.0. Combine this CSIDL with any of the following 
                                                        //CSIDLs to force the creation of the associated folder. 
            CSIDL_ADMINTOOLS                = (0x0030), // Version 5.0. The file system directory that is used to store 
                                                        // administrative tools for an individual user. The Microsoft 
                                                        // Management Console (MMC) will save customized consoles to 
                                                        // this directory, and it will roam with the user.
            CSIDL_ALTSTARTUP                = (0x001d), // The file system directory that corresponds to the user's 
                                                        // nonlocalized Startup program group.
            CSIDL_APPDATA                   = (0x001a), // Version 4.71. The file system directory that serves as a 
                                                        // common repository for application-specific data. A typical
                                                        // path is C:\Documents and Settings\username\Application Data. 
                                                        // This CSIDL is supported by the redistributable Shfolder.dll 
                                                        // for systems that do not have the Microsoft Internet 
                                                        // Explorer 4.0 integrated Shell installed.
            CSIDL_BITBUCKET                 = (0x000a), // The virtual folder containing the objects in the user's 
                                                        // Recycle Bin.
            CSIDL_CDBURN_AREA               = (0x003b), // Version 6.0. The file system directory acting as a staging
                                                        // area for files waiting to be written to CD. A typical path 
                                                        // is C:\Documents and Settings\username\Local Settings\
                                                        // Application Data\Microsoft\CD Burning.
            CSIDL_COMMON_ADMINTOOLS         = (0x002f), // Version 5.0. The file system directory containing 
                                                        // administrative tools for all users of the computer.
            CSIDL_COMMON_ALTSTARTUP         = (0x001e), // The file system directory that corresponds to the 
                                                        // nonlocalized Startup program group for all users. Valid only 
                                                        // for Microsoft Windows NT systems.
            CSIDL_COMMON_APPDATA            = (0x0023), // Version 5.0. The file system directory containing application 
                                                        // data for all users. A typical path is C:\Documents and 
                                                        // Settings\All Users\Application Data.
            CSIDL_COMMON_DESKTOPDIRECTORY   = (0x0019), // The file system directory that contains files and folders 
                                                        // that appear on the desktop for all users. A typical path is 
                                                        // C:\Documents and Settings\All Users\Desktop. Valid only for 
                                                        // Windows NT systems.
            CSIDL_COMMON_DOCUMENTS          = (0x002e), // The file system directory that contains documents that are 
                                                        // common to all users. A typical paths is C:\Documents and 
                                                        // Settings\All Users\Documents. Valid for Windows NT systems 
                                                        // and Microsoft Windows 95 and Windows 98 systems with 
                                                        // Shfolder.dll installed.
            CSIDL_COMMON_FAVORITES          = (0x001f), // The file system directory that serves as a common repository
                                                        // for favorite items common to all users. Valid only for 
                                                        // Windows NT systems.
            CSIDL_COMMON_MUSIC              = (0x0035), // Version 6.0. The file system directory that serves as a 
                                                        // repository for music files common to all users. A typical 
                                                        // path is C:\Documents and Settings\All Users\Documents\
                                                        // My Music.
            CSIDL_COMMON_PICTURES           = (0x0036), // Version 6.0. The file system directory that serves as a 
                                                        // repository for image files common to all users. A typical 
                                                        // path is C:\Documents and Settings\All Users\Documents\
                                                        // My Pictures.
            CSIDL_COMMON_PROGRAMS           = (0x0017), // The file system directory that contains the directories for 
                                                        // the common program groups that appear on the Start menu for
                                                        // all users. A typical path is C:\Documents and Settings\
                                                        // All Users\Start Menu\Programs. Valid only for Windows NT 
                                                        // systems.
            CSIDL_COMMON_STARTMENU          = (0x0016), // The file system directory that contains the programs and 
                                                        // folders that appear on the Start menu for all users. A 
                                                        // typical path is C:\Documents and Settings\All Users\
                                                        // Start Menu. Valid only for Windows NT systems.
            CSIDL_COMMON_STARTUP            = (0x0018), // The file system directory that contains the programs that 
                                                        // appear in the Startup folder for all users. A typical path 
                                                        // is C:\Documents and Settings\All Users\Start Menu\Programs\
                                                        // Startup. Valid only for Windows NT systems.
            CSIDL_COMMON_TEMPLATES          = (0x002d), // The file system directory that contains the templates that 
                                                        // are available to all users. A typical path is C:\Documents 
                                                        // and Settings\All Users\Templates. Valid only for Windows 
                                                        // NT systems.
            CSIDL_COMMON_VIDEO              = (0x0037), // Version 6.0. The file system directory that serves as a 
                                                        // repository for video files common to all users. A typical 
                                                        // path is C:\Documents and Settings\All Users\Documents\
                                                        // My Videos.
            CSIDL_CONTROLS                  = (0x0003), // The virtual folder containing icons for the Control Panel 
                                                        // applications.
            CSIDL_COOKIES                   = (0x0021), // The file system directory that serves as a common repository 
                                                        // for Internet cookies. A typical path is C:\Documents and 
                                                        // Settings\username\Cookies.
            CSIDL_DESKTOP                   = (0x0000), // The virtual folder representing the Windows desktop, the root 
                                                        // of the namespace.
            CSIDL_DESKTOPDIRECTORY          = (0x0010), // The file system directory used to physically store file 
                                                        // objects on the desktop (not to be confused with the desktop 
                                                        // folder itself). A typical path is C:\Documents and 
                                                        // Settings\username\Desktop.
            CSIDL_DRIVES                    = (0x0011), // The virtual folder representing My Computer, containing 
                                                        // everything on the local computer: storage devices, printers,
                                                        // and Control Panel. The folder may also contain mapped 
                                                        // network drives.
            CSIDL_FAVORITES                 = (0x0006), // The file system directory that serves as a common repository 
                                                        // for the user's favorite items. A typical path is C:\Documents
                                                        // and Settings\username\Favorites.
            CSIDL_FONTS                     = (0x0014), // A virtual folder containing fonts. A typical path is 
                                                        // C:\Windows\Fonts.
            CSIDL_HISTORY                   = (0x0022), // The file system directory that serves as a common repository
                                                        // for Internet history items.
            CSIDL_INTERNET                  = (0x0001), // A virtual folder representing the Internet.
            CSIDL_INTERNET_CACHE            = (0x0020), // Version 4.72. The file system directory that serves as a 
                                                        // common repository for temporary Internet files. A typical 
                                                        // path is C:\Documents and Settings\username\Local Settings\
                                                        // Temporary Internet Files.
            CSIDL_LOCAL_APPDATA             = (0x001c), // Version 5.0. The file system directory that serves as a data
                                                        // repository for local (nonroaming) applications. A typical 
                                                        // path is C:\Documents and Settings\username\Local Settings\
                                                        // Application Data.
            CSIDL_MYDOCUMENTS               = (0x000c), // Version 6.0. The virtual folder representing the My Documents
                                                        // desktop item. This should not be confused with 
                                                        // CSIDL_PERSONAL, which represents the file system folder that 
                                                        // physically stores the documents.
            CSIDL_MYMUSIC                   = (0x000d), // The file system directory that serves as a common repository 
                                                        // for music files. A typical path is C:\Documents and Settings
                                                        // \User\My Documents\My Music.
            CSIDL_MYPICTURES                = (0x0027), // Version 5.0. The file system directory that serves as a 
                                                        // common repository for image files. A typical path is 
                                                        // C:\Documents and Settings\username\My Documents\My Pictures.
            CSIDL_MYVIDEO                   = (0x000e), // Version 6.0. The file system directory that serves as a 
                                                        // common repository for video files. A typical path is 
                                                        // C:\Documents and Settings\username\My Documents\My Videos.
            CSIDL_NETHOOD                   = (0x0013), // A file system directory containing the link objects that may 
                                                        // exist in the My Network Places virtual folder. It is not the
                                                        // same as CSIDL_NETWORK, which represents the network namespace
                                                        // root. A typical path is C:\Documents and Settings\username\
                                                        // NetHood.
            CSIDL_NETWORK                   = (0x0012), // A virtual folder representing Network Neighborhood, the root
                                                        // of the network namespace hierarchy.
            CSIDL_PERSONAL                  = (0x0005), // The file system directory used to physically store a user's
                                                        // common repository of documents. A typical path is 
                                                        // C:\Documents and Settings\username\My Documents. This should
                                                        // be distinguished from the virtual My Documents folder in 
                                                        // the namespace, identified by CSIDL_MYDOCUMENTS. 
            CSIDL_PRINTERS                  = (0x0004), // The virtual folder containing installed printers.
            CSIDL_PRINTHOOD                 = (0x001b), // The file system directory that contains the link objects that
                                                        // can exist in the Printers virtual folder. A typical path is 
                                                        // C:\Documents and Settings\username\PrintHood.
            CSIDL_PROFILE                   = (0x0028), // Version 5.0. The user's profile folder. A typical path is 
                                                        // C:\Documents and Settings\username. Applications should not 
                                                        // create files or folders at this level; they should put their
                                                        // data under the locations referred to by CSIDL_APPDATA or
                                                        // CSIDL_LOCAL_APPDATA.
            CSIDL_PROFILES                  = (0x003e), // Version 6.0. The file system directory containing user 
                                                        // profile folders. A typical path is C:\Documents and Settings.
            CSIDL_PROGRAM_FILES             = (0x0026), // Version 5.0. The Program Files folder. A typical path is 
                                                        // C:\Program Files.
            CSIDL_PROGRAM_FILES_COMMON      = (0x002b), // Version 5.0. A folder for components that are shared across 
                                                        // applications. A typical path is C:\Program Files\Common. 
                                                        // Valid only for Windows NT, Windows 2000, and Windows XP 
                                                        // systems. Not valid for Windows Millennium Edition 
                                                        // (Windows Me).
            CSIDL_PROGRAMS                  = (0x0002), // The file system directory that contains the user's program 
                                                        // groups (which are themselves file system directories).
                                                        // A typical path is C:\Documents and Settings\username\
                                                        // Start Menu\Programs. 
            CSIDL_RECENT                    = (0x0008), // The file system directory that contains shortcuts to the 
                                                        // user's most recently used documents. A typical path is 
                                                        // C:\Documents and Settings\username\My Recent Documents. 
                                                        // To create a shortcut in this folder, use SHAddToRecentDocs.
                                                        // In addition to creating the shortcut, this function updates
                                                        // the Shell's list of recent documents and adds the shortcut 
                                                        // to the My Recent Documents submenu of the Start menu.
            CSIDL_SENDTO                    = (0x0009), // The file system directory that contains Send To menu items.
                                                        // A typical path is C:\Documents and Settings\username\SendTo.
            CSIDL_STARTMENU                 = (0x000b), // The file system directory containing Start menu items. A 
                                                        // typical path is C:\Documents and Settings\username\Start Menu.
            CSIDL_STARTUP                   = (0x0007), // The file system directory that corresponds to the user's 
                                                        // Startup program group. The system starts these programs 
                                                        // whenever any user logs onto Windows NT or starts Windows 95.
                                                        // A typical path is C:\Documents and Settings\username\
                                                        // Start Menu\Programs\Startup.
            CSIDL_SYSTEM                    = (0x0025), // Version 5.0. The Windows System folder. A typical path is 
                                                        // C:\Windows\System32.
            CSIDL_TEMPLATES                 = (0x0015), // The file system directory that serves as a common repository
                                                        // for document templates. A typical path is C:\Documents 
                                                        // and Settings\username\Templates.
            CSIDL_WINDOWS                   = (0x0024), // Version 5.0. The Windows directory or SYSROOT. This 
                                                        // corresponds to the %windir% or %SYSTEMROOT% environment 
                                                        // variables. A typical path is C:\Windows.
        }
    
        public enum SHGFP_TYPE
        {
            SHGFP_TYPE_CURRENT = 0,       // current value for user, verify it exists
            SHGFP_TYPE_DEFAULT = 1        // default value, may not exist
        }

        public enum SFGAO : uint
        {
            SFGAO_CANCOPY           = 0x00000001,   // Objects can be copied    
            SFGAO_CANMOVE           = 0x00000002,   // Objects can be moved     
            SFGAO_CANLINK           = 0x00000004,   // Objects can be linked    
            SFGAO_STORAGE           = 0x00000008,   // supports BindToObject(IID_IStorage)
            SFGAO_CANRENAME         = 0x00000010,   // Objects can be renamed
            SFGAO_CANDELETE         = 0x00000020,   // Objects can be deleted
            SFGAO_HASPROPSHEET      = 0x00000040,   // Objects have property sheets
            SFGAO_DROPTARGET        = 0x00000100,   // Objects are drop target
            SFGAO_CAPABILITYMASK    = 0x00000177,   // This flag is a mask for the capability flags.
            SFGAO_ENCRYPTED         = 0x00002000,   // object is encrypted (use alt color)
            SFGAO_ISSLOW            = 0x00004000,   // 'slow' object
            SFGAO_GHOSTED           = 0x00008000,   // ghosted icon
            SFGAO_LINK              = 0x00010000,   // Shortcut (link)
            SFGAO_SHARE             = 0x00020000,   // shared
            SFGAO_READONLY          = 0x00040000,   // read-only
            SFGAO_HIDDEN            = 0x00080000,   // hidden object
            SFGAO_DISPLAYATTRMASK   = 0x000FC000,   // This flag is a mask for the display attributes.
            SFGAO_FILESYSANCESTOR   = 0x10000000,   // may contain children with SFGAO_FILESYSTEM
            SFGAO_FOLDER            = 0x20000000,   // support BindToObject(IID_IShellFolder)
            SFGAO_FILESYSTEM        = 0x40000000,   // is a win32 file system object (file/folder/root)
            SFGAO_HASSUBFOLDER      = 0x80000000,   // may contain children with SFGAO_FOLDER
            SFGAO_CONTENTSMASK      = 0x80000000,   // This flag is a mask for the contents attributes.
            SFGAO_VALIDATE          = 0x01000000,   // invalidate cached information
            SFGAO_REMOVABLE         = 0x02000000,   // is this removeable media?
            SFGAO_COMPRESSED        = 0x04000000,   // Object is compressed (use alt color)
            SFGAO_BROWSABLE         = 0x08000000,   // supports IShellFolder, but only implements CreateViewObject() (non-folder view)
            SFGAO_NONENUMERATED     = 0x00100000,   // is a non-enumerated object
            SFGAO_NEWCONTENT        = 0x00200000,   // should show bold in explorer tree
            SFGAO_CANMONIKER        = 0x00400000,   // defunct
            SFGAO_HASSTORAGE        = 0x00400000,   // defunct
            SFGAO_STREAM            = 0x00400000,   // supports BindToObject(IID_IStream)
            SFGAO_STORAGEANCESTOR   = 0x00800000,   // may contain children with SFGAO_STORAGE or SFGAO_STREAM
            SFGAO_STORAGECAPMASK    = 0x70C50008    // for determining storage capabilities, ie for open/save semantics

        }

        public enum SHCONTF
        {
            SHCONTF_FOLDERS             = 0x0020,   // only want folders enumerated (SFGAO_FOLDER)
            SHCONTF_NONFOLDERS          = 0x0040,   // include non folders
            SHCONTF_INCLUDEHIDDEN       = 0x0080,   // show items normally hidden
            SHCONTF_INIT_ON_FIRST_NEXT  = 0x0100,   // allow EnumObject() to return before validating enum
            SHCONTF_NETPRINTERSRCH      = 0x0200,   // hint that client is looking for printers
            SHCONTF_SHAREABLE           = 0x0400,   // hint that client is looking sharable resources (remote shares)
            SHCONTF_STORAGE             = 0x0800,   // include all items with accessible storage and their ancestors
        }

        public enum SHCIDS : uint
        {
            SHCIDS_ALLFIELDS        = 0x80000000,   // Compare all the information contained in the ITEMIDLIST 
                                                    // structure, not just the display names
            SHCIDS_CANONICALONLY    = 0x10000000,   // When comparing by name, compare the system names but not the 
                                                    // display names. 
            SHCIDS_BITMASK          = 0xFFFF0000,
            SHCIDS_COLUMNMASK       = 0x0000FFFF
        }

        public enum SHGNO
        {
            SHGDN_NORMAL             = 0x0000,      // default (display purpose)
            SHGDN_INFOLDER           = 0x0001,      // displayed under a folder (relative)
            SHGDN_FOREDITING         = 0x1000,      // for in-place editing
            SHGDN_FORADDRESSBAR      = 0x4000,      // UI friendly parsing name (remove ugly stuff)
            SHGDN_FORPARSING         = 0x8000       // parsing name for ParseDisplayName()
        } 

        public enum STRRET_TYPE
        {
            STRRET_WSTR      = 0x0000,              // Use STRRET.pOleStr
            STRRET_OFFSET    = 0x0001,              // Use STRRET.uOffset to Ansi
            STRRET_CSTR      = 0x0002               // Use STRRET.cStr
        }
        
        public static Int16 GetHResultCode(Int32 hr)
        {
            hr = hr & 0x0000ffff;
            return (Int16)hr;
        }

    }
}
www.java2v.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.