Torna al Thread

class sti { [DllImport("kernel32.dll")] public extern static IntPtr GetModuleHandleW(string lpModuleName); [DllImport("Sti.dll", CharSet = CharSet.Unicode)] public extern static int StiCreateInstanceW(IntPtr hinst, uint dwVer, [Out, MarshalAs(UnmanagedType.Interface)] out IStillImage ppSti, object punkOuter); const int STI_VERSION = 0x00000002; static void Main(string[] args) { IStillImage StillImage; StiCreateInstanceW(GetModuleHandleW(null), STI_VERSION, out StillImage, null); StillImage.RegisterLaunchApplication("MyApp", "C:\\Windows\\notepad.exe"); } } public enum STI_DEVICE_TYPE : int { StiDeviceTypeDefault = 0, StiDeviceTypeScanner = 1, StiDeviceTypeDigitalCamera = 2, StiDeviceTypeStreamingVideo = 3 } [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] public struct STI_DEV_CAPS { public int dwGeneric; } [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] public struct STI_DEVICE_INFORMATIONW { private const int STI_MAX_INTERNAL_NAME_LENGTH = 128; public int dwSize; public STI_DEVICE_TYPE DeviceType; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = STI_MAX_INTERNAL_NAME_LENGTH)] string szDeviceInternalName; public STI_DEV_CAPS DeviceCapabilities; public int dwHardwareConfiguration; [MarshalAs(UnmanagedType.LPWStr)] public string pszVendorDescription; [MarshalAs(UnmanagedType.LPWStr)] public string pszDeviceDescription; [MarshalAs(UnmanagedType.LPWStr)] public string pszPortName; [MarshalAs(UnmanagedType.LPWStr)] public string pszPropProvider; [MarshalAs(UnmanagedType.LPWStr)] public string pszLocalName; } [Guid("641BD880-2DC8-11D0-90EA-00AA0060F86C"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] public interface IStillImage { void RegisterLaunchApplication([In, MarshalAs(UnmanagedType.LPWStr)] string pwszAppName, [In, MarshalAs(UnmanagedType.LPWStr)] string pwszCommandLine); void GetDeviceList([In] int dwType, [In] int dwFlags, [Out] out int pdwItemsReturned, [In, Out] IntPtr ppBuffer); void GetDeviceInfo([In, MarshalAs(UnmanagedType.LPWStr)] string pwszDeviceName, [In, Out] IntPtr ppBuffer); void CreateDevice([In, MarshalAs(UnmanagedType.LPWStr)] string pwszDeviceName, [In] int dwMode, [In, Out] IntPtr pDevice, [In, Out] IntPtr punkOuter); void SetDeviceValue([In, MarshalAs(UnmanagedType.LPWStr)] string pwszDeviceName, [In, MarshalAs(UnmanagedType.LPWStr)] string pValueName, [In] int Type, [In, Out] IntPtr pData, [In] int cbData); void GetDeviceValue([In, MarshalAs(UnmanagedType.LPWStr)] string pwszDeviceName, [In, MarshalAs(UnmanagedType.LPWStr)] string pValueName, [In, Out] ref int pType, [In, Out] IntPtr pData, [In, Out] ref int cbData); void GetSTILaunchInformation([In, Out, MarshalAs(UnmanagedType.LPWStr)] ref string pwszDeviceName, [In, Out] ref int pdwEventCode, [In, Out, MarshalAs(UnmanagedType.LPWStr)] ref string pwszEventName); void UnregisterLaunchApplication([In, MarshalAs(UnmanagedType.LPWStr)] string pwszAppName); void EnableHwNotifications([In, MarshalAs(UnmanagedType.LPWStr)] string pwszDeviceName, [In] bool bNewState); void GetHwNotificationState([In, MarshalAs(UnmanagedType.LPWStr)] string pwszDeviceName, [In, Out] ref bool pbCurrentState); void RefreshDeviceBus([In, MarshalAs(UnmanagedType.LPWStr)] string pwszDeviceName); void LaunchApplicationForDevice([In, MarshalAs(UnmanagedType.LPWStr)] string pwszDeviceName, [In, MarshalAs(UnmanagedType.LPWStr)] string pwszAppName, [In, Out] IntPtr pStiNofify); void SetupDeviceParameters([In, Out] ref STI_DEVICE_INFORMATIONW pDeviceInfo); void WriteToErrorLog([In] int dwMessageType, [In, MarshalAs(UnmanagedType.LPWStr)] string pszMessage); }
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5