internal static IntPtr GetIcon(StockIconIdentifier identifier,
            StockIconOptions flags)
        {
            SafeNativeMethods.StockIconInfo info = new SafeNativeMethods.StockIconInfo();
            info.StuctureSize = (UInt32)System.Runtime.InteropServices.Marshal.SizeOf(typeof(SafeNativeMethods.StockIconInfo));

            int hResult =
                UnsafeNativeMethods.SHGetStockIconInfo(identifier, flags, ref info);

            if (hResult != 0)
                throw new System.ComponentModel.Win32Exception("SHGetStockIconInfo execution failure " + hResult.ToString());

            return info.Handle;
        }
 internal static extern int SHGetStockIconInfo(
     StockIconIdentifier identifier,
     StockIconOptions flags,
     ref SafeNativeMethods.StockIconInfo info);