// wiascr.idl : IDL source for wiascr.dll // // This file will be processed by the MIDL tool to // produce the type library (wiascr.tlb) and marshalling code. import "oaidl.idl"; import "ocidl.idl"; #define WIA_INTENT_IMAGE_TYPE_COLOR 0x00000001 #define WIA_INTENT_IMAGE_TYPE_GRAYSCALE 0x00000002 #define WIA_INTENT_IMAGE_TYPE_TEXT 0x00000004 #define WIA_INTENT_MINIMIZE_SIZE 0x00010000 #define WIA_INTENT_MAXIMIZE_QUALITY 0x00020000 #define WIA_INTENT_BEST_PREVIEW 0x00040000 #define WIA_DEVICE_DIALOG_SINGLE_IMAGE 0x00000002 // Only allow one image to be selected #define WIA_DEVICE_DIALOG_USE_COMMON_UI 0x00000004 // Give preference to the system-provided UI, if available #define WIA_RESERVED_FOR_SMALL_NEW_PROPS 256 #define WIA_RESERVED_FOR_NEW_PROPS 1024 #define WIA_RESERVED_FOR_ALL_MS_PROPS (1024*32) #define WIA_DIP_FIRST 2 #define WIA_DIP_DEV_ID 2 #define WIA_DIP_VEND_DESC 3 #define WIA_DIP_DEV_DESC 4 #define WIA_DIP_DEV_TYPE 5 #define WIA_DIP_PORT_NAME 6 #define WIA_DIP_DEV_NAME 7 #define WIA_DIP_SERVER_NAME 8 #define WIA_DIP_REMOTE_DEV_ID 9 #define WIA_DIP_UI_CLSID 10 #define WIA_DIP_HW_CONFIG 11 #define WIA_DIP_BAUDRATE 12 #define WIA_DIP_STI_GEN_CAPABILITIES 13 #define WIA_DIP_WIA_VERSION 14 #define WIA_DIP_DRIVER_VERSION 15 #define WIA_DIP_LAST 15 #define WIA_NUM_DIP 1 + WIA_DIP_LAST - WIA_DIP_FIRST // // Common device properties // #define WIA_DPA_FIRST WIA_DIP_FIRST + WIA_RESERVED_FOR_NEW_PROPS #define WIA_DPA_FIRMWARE_VERSION WIA_DPA_FIRST + 0 #define WIA_DPA_CONNECT_STATUS WIA_DPA_FIRST + 1 #define WIA_DPA_DEVICE_TIME WIA_DPA_FIRST + 2 #define WIA_DPA_LAST WIA_DPA_FIRST + 3 // // Camera device properties // #define WIA_DPC_FIRST WIA_DPA_FIRST + WIA_RESERVED_FOR_NEW_PROPS #define WIA_DPC_PICTURES_TAKEN WIA_DPC_FIRST + 0 #define WIA_DPC_PICTURES_REMAINING WIA_DPC_FIRST + 1 #define WIA_DPC_EXPOSURE_MODE WIA_DPC_FIRST + 2 #define WIA_DPC_EXPOSURE_COMP WIA_DPC_FIRST + 3 #define WIA_DPC_EXPOSURE_TIME WIA_DPC_FIRST + 4 #define WIA_DPC_FNUMBER WIA_DPC_FIRST + 5 #define WIA_DPC_FLASH_MODE WIA_DPC_FIRST + 6 #define WIA_DPC_FOCUS_MODE WIA_DPC_FIRST + 7 #define WIA_DPC_FOCUS_MANUAL_DIST WIA_DPC_FIRST + 8 #define WIA_DPC_ZOOM_POSITION WIA_DPC_FIRST + 9 #define WIA_DPC_PAN_POSITION WIA_DPC_FIRST + 10 #define WIA_DPC_TILT_POSITION WIA_DPC_FIRST + 11 #define WIA_DPC_TIMER_MODE WIA_DPC_FIRST + 12 #define WIA_DPC_TIMER_VALUE WIA_DPC_FIRST + 13 #define WIA_DPC_POWER_MODE WIA_DPC_FIRST + 14 #define WIA_DPC_BATTERY_STATUS WIA_DPC_FIRST + 15 #define WIA_DPC_THUMB_WIDTH WIA_DPC_FIRST + 16 #define WIA_DPC_THUMB_HEIGHT WIA_DPC_FIRST + 17 #define WIA_DPC_PICT_WIDTH WIA_DPC_FIRST + 18 #define WIA_DPC_PICT_HEIGHT WIA_DPC_FIRST + 19 #define WIA_DPC_DIMENSION WIA_DPC_FIRST + 20 #define WIA_DPC_COMPRESSION_SETTING WIA_DPC_FIRST + 21 #define WIA_DPC_FOCUS_METERING WIA_DPC_FIRST + 22 #define WIA_DPC_TIMELAPSE_INTERVAL WIA_DPC_FIRST + 23 #define WIA_DPC_TIMELAPSE_NUMBER WIA_DPC_FIRST + 24 #define WIA_DPC_BURST_INTERVAL WIA_DPC_FIRST + 25 #define WIA_DPC_BURST_NUMBER WIA_DPC_FIRST + 26 #define WIA_DPC_EFFECT_MODE WIA_DPC_FIRST + 27 #define WIA_DPC_DIGITAL_ZOOM WIA_DPC_FIRST + 28 #define WIA_DPC_SHARPNESS WIA_DPC_FIRST + 29 #define WIA_DPC_CONTRAST WIA_DPC_FIRST + 30 #define WIA_DPC_CAPTURE_MODE WIA_DPC_FIRST + 31 #define WIA_DPC_CAPTURE_DELAY WIA_DPC_FIRST + 32 #define WIA_DPC_EXPOSURE_INDEX WIA_DPC_FIRST + 33 #define WIA_DPC_EXPOSURE_METERING_MODE WIA_DPC_FIRST + 34 #define WIA_DPC_FOCUS_METERING_MODE WIA_DPC_FIRST + 35 #define WIA_DPC_FOCUS_DISTANCE WIA_DPC_FIRST + 36 #define WIA_DPC_FOCAL_LENGTH WIA_DPC_FIRST + 37 #define WIA_DPC_RGB_GAIN WIA_DPC_FIRST + 38 #define WIA_DPC_WHITE_BALANCE WIA_DPC_FIRST + 39 #define WIA_DPC_UPLOAD_URL WIA_DPC_FIRST + 40 #define WIA_DPC_ARTIST WIA_DPC_FIRST + 41 #define WIA_DPC_COPYRIGHT_INFO WIA_DPC_FIRST + 42 #define WIA_DPC_LAST WIA_DPC_FIRST + 42 // // Scanner device properties // #define WIA_DPS_FIRST WIA_DPC_FIRST + WIA_RESERVED_FOR_NEW_PROPS #define WIA_DPS_HORIZONTAL_BED_SIZE WIA_DPS_FIRST + 0 #define WIA_DPS_VERTICAL_BED_SIZE WIA_DPS_FIRST + 1 #define WIA_DPS_HORIZONTAL_SHEET_FEED_SIZE WIA_DPS_FIRST + 2 #define WIA_DPS_VERTICAL_SHEET_FEED_SIZE WIA_DPS_FIRST + 3 #define WIA_DPS_SHEET_FEEDER_REGISTRATION WIA_DPS_FIRST + 4 #define WIA_DPS_HORIZONTAL_BED_REGISTRATION WIA_DPS_FIRST + 5 #define WIA_DPS_VERTICAL_BED_REGISTRATION WIA_DPS_FIRST + 6 #define WIA_DPS_PLATEN_COLOR WIA_DPS_FIRST + 7 #define WIA_DPS_PAD_COLOR WIA_DPS_FIRST + 8 #define WIA_DPS_FILTER_SELECT WIA_DPS_FIRST + 9 #define WIA_DPS_DITHER_SELECT WIA_DPS_FIRST + 10 #define WIA_DPS_DITHER_PATTERN_DATA WIA_DPS_FIRST + 11 #define WIA_DPS_DOCUMENT_HANDLING_CAPABILITIES WIA_DPS_FIRST + 12 #define WIA_DPS_DOCUMENT_HANDLING_STATUS WIA_DPS_FIRST + 13 #define WIA_DPS_DOCUMENT_HANDLING_SELECT WIA_DPS_FIRST + 14 #define WIA_DPS_DOCUMENT_HANDLING_CAPACITY WIA_DPS_FIRST + 15 #define WIA_DPS_OPTICAL_XRES WIA_DPS_FIRST + 16 #define WIA_DPS_OPTICAL_YRES WIA_DPS_FIRST + 17 #define WIA_DPS_ENDORSER_CHARACTERS WIA_DPS_FIRST + 18 #define WIA_DPS_ENDORSER_STRING WIA_DPS_FIRST + 19 #define WIA_DPS_SCAN_AHEAD_PAGES WIA_DPS_FIRST + 20 #define WIA_DPS_MAX_SCAN_TIME WIA_DPS_FIRST + 21 #define WIA_DPS_PAGES WIA_DPS_FIRST + 22 #define WIA_DPS_PAGE_SIZE WIA_DPS_FIRST + 23 #define WIA_DPS_PAGE_WIDTH WIA_DPS_FIRST + 24 #define WIA_DPS_PAGE_HEIGHT WIA_DPS_FIRST + 25 #define WIA_DPS_PREVIEW WIA_DPS_FIRST + 26 #define WIA_DPS_TRANSPARENCY WIA_DPS_FIRST + 27 #define WIA_DPS_TRANSPARENCY_SELECT WIA_DPS_FIRST + 28 #define WIA_DPS_SHOW_PREVIEW_CONTROL WIA_DPS_FIRST + 29 #define WIA_DPS_MIN_HORIZONTAL_SHEET_FEED_SIZE WIA_DPS_FIRST + 30 #define WIA_DPS_MIN_VERTICAL_SHEET_FEED_SIZE WIA_DPS_FIRST + 31 #define WIA_DPS_LAST WIA_DPS_FIRST + 31 // // File System Properties // #define WIA_DPF_FIRST WIA_DPS_FIRST + WIA_RESERVED_FOR_SMALL_NEW_PROPS #define WIA_DPF_MOUNT_POINT WIA_DPF_FIRST + 0 #define WIA_DPF_LAST WIA_DPF_FIRST + 0 // // Video Camera properties. // // #define WIA_DPV_FIRST WIA_DPF_FIRST + WIA_RESERVED_FOR_SMALL_NEW_PROPS #define WIA_DPV_LAST_PICTURE_TAKEN WIA_DPV_FIRST + 0 #define WIA_DPV_IMAGES_DIRECTORY WIA_DPV_FIRST + 1 #define WIA_DPV_DSHOW_DEVICE_PATH WIA_DPV_FIRST + 2 #define WIA_DPV_LAST WIA_DPV_FIRST + 2 // // Common item properties // #define WIA_IPA_FIRST WIA_DPS_FIRST + WIA_RESERVED_FOR_NEW_PROPS #define WIA_IPA_ITEM_NAME WIA_IPA_FIRST + 0 #define WIA_IPA_FULL_ITEM_NAME WIA_IPA_FIRST + 1 #define WIA_IPA_ITEM_TIME WIA_IPA_FIRST + 2 #define WIA_IPA_ITEM_FLAGS WIA_IPA_FIRST + 3 #define WIA_IPA_ACCESS_RIGHTS WIA_IPA_FIRST + 4 #define WIA_IPA_DATATYPE WIA_IPA_FIRST + 5 #define WIA_IPA_DEPTH WIA_IPA_FIRST + 6 #define WIA_IPA_PREFERRED_FORMAT WIA_IPA_FIRST + 7 #define WIA_IPA_FORMAT WIA_IPA_FIRST + 8 #define WIA_IPA_COMPRESSION WIA_IPA_FIRST + 9 #define WIA_IPA_TYMED WIA_IPA_FIRST + 10 #define WIA_IPA_CHANNELS_PER_PIXEL WIA_IPA_FIRST + 11 #define WIA_IPA_BITS_PER_CHANNEL WIA_IPA_FIRST + 12 #define WIA_IPA_PLANAR WIA_IPA_FIRST + 13 #define WIA_IPA_PIXELS_PER_LINE WIA_IPA_FIRST + 14 #define WIA_IPA_BYTES_PER_LINE WIA_IPA_FIRST + 15 #define WIA_IPA_NUMBER_OF_LINES WIA_IPA_FIRST + 16 #define WIA_IPA_GAMMA_CURVES WIA_IPA_FIRST + 17 #define WIA_IPA_ITEM_SIZE WIA_IPA_FIRST + 18 #define WIA_IPA_COLOR_PROFILE WIA_IPA_FIRST + 19 #define WIA_IPA_MIN_BUFFER_SIZE WIA_IPA_FIRST + 20 // Note: BUFFER_SIZE and MIN_BUFFER_SIZE have the same propids #define WIA_IPA_BUFFER_SIZE WIA_IPA_FIRST + 20 #define WIA_IPA_REGION_TYPE WIA_IPA_FIRST + 21 #define WIA_IPA_ICM_PROFILE_NAME WIA_IPA_FIRST + 22 #define WIA_IPA_APP_COLOR_MAPPING WIA_IPA_FIRST + 23 #define WIA_IPA_PROP_STREAM_COMPAT_ID WIA_IPA_FIRST + 24 #define WIA_IPA_FILENAME_EXTENSION WIA_IPA_FIRST + 25 #define WIA_IPA_SUPPRESS_PROPERTY_PAGE WIA_IPA_FIRST + 26 #define WIA_IPA_LAST WIA_IPA_FIRST + 26 // // Camera item properties // #define WIA_IPC_FIRST WIA_IPA_FIRST + WIA_RESERVED_FOR_NEW_PROPS #define WIA_IPC_THUMBNAIL WIA_IPC_FIRST + 0 #define WIA_IPC_THUMB_WIDTH WIA_IPC_FIRST + 1 #define WIA_IPC_THUMB_HEIGHT WIA_IPC_FIRST + 2 #define WIA_IPC_AUDIO_AVAILABLE WIA_IPC_FIRST + 3 #define WIA_IPC_AUDIO_DATA_FORMAT WIA_IPC_FIRST + 4 #define WIA_IPC_AUDIO_DATA WIA_IPC_FIRST + 5 #define WIA_IPC_NUM_PICT_PER_ROW WIA_IPC_FIRST + 6 #define WIA_IPC_SEQUENCE WIA_IPC_FIRST + 7 #define WIA_IPC_TIMEDELAY WIA_IPC_FIRST + 8 #define WIA_IPC_LAST WIA_IPC_FIRST + 8 // // Scanner item properties // #define WIA_IPS_FIRST WIA_IPC_FIRST + WIA_RESERVED_FOR_NEW_PROPS #define WIA_IPS_CUR_INTENT WIA_IPS_FIRST + 0 #define WIA_IPS_XRES WIA_IPS_FIRST + 1 #define WIA_IPS_YRES WIA_IPS_FIRST + 2 #define WIA_IPS_XPOS WIA_IPS_FIRST + 3 #define WIA_IPS_YPOS WIA_IPS_FIRST + 4 #define WIA_IPS_XEXTENT WIA_IPS_FIRST + 5 #define WIA_IPS_YEXTENT WIA_IPS_FIRST + 6 #define WIA_IPS_PHOTOMETRIC_INTERP WIA_IPS_FIRST + 7 #define WIA_IPS_BRIGHTNESS WIA_IPS_FIRST + 8 #define WIA_IPS_CONTRAST WIA_IPS_FIRST + 9 #define WIA_IPS_ORIENTATION WIA_IPS_FIRST + 10 #define WIA_IPS_ROTATION WIA_IPS_FIRST + 11 #define WIA_IPS_MIRROR WIA_IPS_FIRST + 12 #define WIA_IPS_THRESHOLD WIA_IPS_FIRST + 13 #define WIA_IPS_INVERT WIA_IPS_FIRST + 14 #define WIA_IPS_WARM_UP_TIME WIA_IPS_FIRST + 15 #define WIA_IPS_LAST WIA_IPS_FIRST + 15 [ uuid(95CEDD63-2E34-4B84-9FB3-F86AF1D4BF7A), version(1.0), helpstring("Microsoft Windows Image Acquisition 1.01 Type Library") ] library WIALib { importlib("stdole32.tlb"); importlib("stdole2.tlb"); //////////////////////////////////////////////////////////// // WiaProtocol Object (used only internally) [ uuid(13F3EA8B-91D7-4F0A-AD76-D2853AC8BECE), helpstring("WiaProtocol Class"), hidden ] coclass WiaProtocol { [restricted] interface IUnknown; }; //////////////////////////////////////////////////////////// // Enumerations [uuid(E9F173A4-EF5C-4553-9F80-87ECFB636D9B), helpstring("WiaIntents")] typedef [public] enum WiaIntent { ImageTypeColor = WIA_INTENT_IMAGE_TYPE_COLOR, ImageTypeGrayscale = WIA_INTENT_IMAGE_TYPE_GRAYSCALE, ImageTypeText = WIA_INTENT_IMAGE_TYPE_TEXT, MinimizeSize = WIA_INTENT_MINIMIZE_SIZE, MaximizeQuality = WIA_INTENT_MAXIMIZE_QUALITY, BestPreview = WIA_INTENT_BEST_PREVIEW } WiaIntent; [uuid(56385E6A-12C5-419d-8516-062B9613E042), helpstring("WiaFlags")] typedef [public] enum WiaFlag { SingleImage = WIA_DEVICE_DIALOG_SINGLE_IMAGE, UseCommonUI = WIA_DEVICE_DIALOG_USE_COMMON_UI, } WiaFlag; [uuid(9EED984D-AAC3-43cb-A993-98403F5ADC55), helpstring("WiaDeviceInfoPropertyIds")] typedef [public] enum WiaDeviceInfoPropertyId { DeviceInfoDevId = WIA_DIP_DEV_ID, DeviceInfoVendDesc = WIA_DIP_VEND_DESC, DeviceInfoDevDesc = WIA_DIP_DEV_DESC, DeviceInfoDevType = WIA_DIP_DEV_TYPE, DeviceInfoPortName = WIA_DIP_PORT_NAME, DeviceInfoDevName = WIA_DIP_DEV_NAME, DeviceInfoServerName = WIA_DIP_SERVER_NAME, DeviceInfoRemoteDevId = WIA_DIP_REMOTE_DEV_ID, DeviceInfoUIClsid = WIA_DIP_UI_CLSID, DeviceInfoHwConfig = WIA_DIP_HW_CONFIG, DeviceInfoBaudRate = WIA_DIP_BAUDRATE, DeviceInfoStiGenCapabilities = WIA_DIP_STI_GEN_CAPABILITIES, DeviceInfoWiaVersion = WIA_DIP_WIA_VERSION, DeviceInfoDriverVersion = WIA_DIP_DRIVER_VERSION, } WiaDeviceInfoPropertyId; [uuid(A0115E47-C46A-4c1d-A3B5-5ADB9F2FCD04), helpstring("WiaDeviceItemPropertyIds")] typedef [public] enum WiaItemPropertyId { DeviceFirmwareVersion = WIA_DPA_FIRMWARE_VERSION, DeviceConnectStatus = WIA_DPA_CONNECT_STATUS, DeviceDeviceTime = WIA_DPA_DEVICE_TIME, CameraDevicePicturesTaken = WIA_DPC_PICTURES_TAKEN, CameraDevicePicturesRemaining = WIA_DPC_PICTURES_REMAINING, CameraDeviceExposureMode = WIA_DPC_EXPOSURE_MODE, CameraDeviceExposureComp = WIA_DPC_EXPOSURE_COMP, CameraDeviceExposureTime = WIA_DPC_EXPOSURE_TIME, CameraDeviceFNumber = WIA_DPC_FNUMBER, CameraDeviceFlashMode = WIA_DPC_FLASH_MODE, CameraDeviceFocusMode = WIA_DPC_FOCUS_MODE, CameraDevicePanPosition = WIA_DPC_PAN_POSITION, CameraDeviceTiltPosition = WIA_DPC_TILT_POSITION, CameraDeviceTimerMode = WIA_DPC_TIMER_MODE, CameraDeviceTimerValue = WIA_DPC_TIMER_VALUE, CameraDevicePowerMode = WIA_DPC_POWER_MODE, CameraDeviceBatteryStatus = WIA_DPC_BATTERY_STATUS, CameraDeviceThumbWidth = WIA_DPC_THUMB_WIDTH, CameraDeviceThumbHeight = WIA_DPC_THUMB_HEIGHT, CameraDevicePictWidth = WIA_DPC_PICT_WIDTH, CameraDevicePictHeight = WIA_DPC_PICT_HEIGHT, CameraDeviceCompressionSetting = WIA_DPC_COMPRESSION_SETTING, CameraDeviceTimelapseInterval = WIA_DPC_TIMELAPSE_INTERVAL, CameraDeviceTimelapseNumber = WIA_DPC_TIMELAPSE_NUMBER, CameraDeviceBurstInterval = WIA_DPC_BURST_INTERVAL, CameraDeviceBurstNumber = WIA_DPC_BURST_NUMBER, CameraDeviceEffectMode = WIA_DPC_EFFECT_MODE, CameraDeviceDigitalZoom = WIA_DPC_DIGITAL_ZOOM, CameraDeviceSharpness = WIA_DPC_SHARPNESS, CameraDeviceContrast = WIA_DPC_CONTRAST, CameraDeviceCaptureMode = WIA_DPC_CAPTURE_MODE, CameraDeviceCaptureDelay = WIA_DPC_CAPTURE_DELAY, CameraDeviceExposureIndex = WIA_DPC_EXPOSURE_INDEX, CameraDeviceExposureMeteringMode = WIA_DPC_EXPOSURE_METERING_MODE, CameraDeviceFocusMeteringMode = WIA_DPC_FOCUS_METERING_MODE, CameraDeviceFocusDistance = WIA_DPC_FOCUS_DISTANCE, CameraDeviceFocalLength = WIA_DPC_FOCAL_LENGTH, CameraDeviceRGBGain = WIA_DPC_RGB_GAIN, CameraDeviceWhiteBalance = WIA_DPC_WHITE_BALANCE, CameraDeviceUploadURL = WIA_DPC_UPLOAD_URL, CameraDeviceArtist = WIA_DPC_ARTIST, CameraDeviceCopyrightInfo = WIA_DPC_COPYRIGHT_INFO, ScannerDeviceHorizontalBedSize = WIA_DPS_HORIZONTAL_BED_SIZE, ScannerDeviceVerticalBedSize = WIA_DPS_VERTICAL_BED_SIZE, ScannerDeviceHorizontalSheetFeedSize = WIA_DPS_HORIZONTAL_SHEET_FEED_SIZE, ScannerDeviceVerticalSheetFeedSize = WIA_DPS_VERTICAL_SHEET_FEED_SIZE, ScannerDeviceSheetFeederRegistration = WIA_DPS_SHEET_FEEDER_REGISTRATION, ScannerDeviceHorizontalBedRegistration = WIA_DPS_HORIZONTAL_BED_REGISTRATION, ScannerDeviceVerticalBedRegistration = WIA_DPS_VERTICAL_BED_REGISTRATION, ScannerDevicePlatenColor = WIA_DPS_PLATEN_COLOR, ScannerDevicePadColor = WIA_DPS_PAD_COLOR, ScannerDeviceDocumentHandlingCapabilities = WIA_DPS_DOCUMENT_HANDLING_CAPABILITIES, ScannerDeviceDocumentHandlingStatus = WIA_DPS_DOCUMENT_HANDLING_STATUS, ScannerDeviceDocumentHandlingSelect = WIA_DPS_DOCUMENT_HANDLING_SELECT, ScannerDeviceDocumentHandlingCapacity = WIA_DPS_DOCUMENT_HANDLING_CAPACITY, ScannerDeviceOpticalXres = WIA_DPS_OPTICAL_XRES, ScannerDeviceOpticalYres = WIA_DPS_OPTICAL_YRES, ScannerDeviceEndorserCharacters = WIA_DPS_ENDORSER_CHARACTERS, ScannerDeviceEndorserString = WIA_DPS_ENDORSER_STRING, ScannerDeviceScanAheadPages = WIA_DPS_SCAN_AHEAD_PAGES, ScannerDeviceMaxScanTime = WIA_DPS_MAX_SCAN_TIME, ScannerDevicePages = WIA_DPS_PAGES, ScannerDevicePageSize = WIA_DPS_PAGE_SIZE, ScannerDevicePageWidth = WIA_DPS_PAGE_WIDTH, ScannerDevicePageHeight = WIA_DPS_PAGE_HEIGHT, ScannerDevicePreview = WIA_DPS_PREVIEW, ScannerDeviceTransparency = WIA_DPS_TRANSPARENCY, ScannerDeviceTransparencySelect = WIA_DPS_TRANSPARENCY_SELECT, ScannerDeviceShowPreviewControl = WIA_DPS_SHOW_PREVIEW_CONTROL, ScannerDeviceMinHorizontalSheetFeedSize = WIA_DPS_MIN_HORIZONTAL_SHEET_FEED_SIZE, ScannerDeviceMinVerticalSheetFeedSize = WIA_DPS_MIN_VERTICAL_SHEET_FEED_SIZE, FileDeviceMountPoint = WIA_DPF_MOUNT_POINT, VideoDeviceLastPictureTaken = WIA_DPV_LAST_PICTURE_TAKEN, VideoDeviceImagesDirectory = WIA_DPV_IMAGES_DIRECTORY, VideoDeviceDShowDevicePath = WIA_DPV_DSHOW_DEVICE_PATH, PictureItemName = WIA_IPA_ITEM_NAME, PictureFullItemName = WIA_IPA_FULL_ITEM_NAME, PictureItemTime = WIA_IPA_ITEM_TIME, PictureItemFlags = WIA_IPA_ITEM_FLAGS, PictureAccessRights = WIA_IPA_ACCESS_RIGHTS, PictureDatatype = WIA_IPA_DATATYPE, PictureDepth = WIA_IPA_DEPTH, PicturePreferredFormat = WIA_IPA_PREFERRED_FORMAT, PictureFormat = WIA_IPA_FORMAT, PictureCompression = WIA_IPA_COMPRESSION, PictureTymed = WIA_IPA_TYMED, PictureChannelsPerPixel = WIA_IPA_CHANNELS_PER_PIXEL, PictureBitsPerChannel = WIA_IPA_BITS_PER_CHANNEL, PicturePlanar = WIA_IPA_PLANAR, PicturePixelsPerLine = WIA_IPA_PIXELS_PER_LINE, PictureBytesPerLine = WIA_IPA_BYTES_PER_LINE, PictureNumberOfLines = WIA_IPA_NUMBER_OF_LINES, PictureGammaCurves = WIA_IPA_GAMMA_CURVES, PictureItemSize = WIA_IPA_ITEM_SIZE, PictureColorProfile = WIA_IPA_COLOR_PROFILE, PictureMinBufferSize = WIA_IPA_MIN_BUFFER_SIZE, PictureBufferSize = WIA_IPA_BUFFER_SIZE, PictureRegionType = WIA_IPA_REGION_TYPE, PictureIcmProfileName = WIA_IPA_ICM_PROFILE_NAME, PictureAppColorMapping = WIA_IPA_APP_COLOR_MAPPING, PicturePropStreamCompatId = WIA_IPA_PROP_STREAM_COMPAT_ID, PictureFilenameExtension = WIA_IPA_FILENAME_EXTENSION, PictureSuppressPropertyPage = WIA_IPA_SUPPRESS_PROPERTY_PAGE, CameraPictureThumbnail = WIA_IPC_THUMBNAIL, CameraPictureThumbWidth = WIA_IPC_THUMB_WIDTH, CameraPictureThumbHeight = WIA_IPC_THUMB_HEIGHT, CameraPictureAudioAvailable = WIA_IPC_AUDIO_AVAILABLE, CameraPictureAudioDataFormat = WIA_IPC_AUDIO_DATA_FORMAT, CameraPictureAudioData = WIA_IPC_AUDIO_DATA, CameraPictureNumPictPerRow = WIA_IPC_NUM_PICT_PER_ROW, CameraPictureSequence = WIA_IPC_SEQUENCE, CameraPictureTimedelay = WIA_IPC_TIMEDELAY, ScannerPictureCurIntent = WIA_IPS_CUR_INTENT, ScannerPictureXres = WIA_IPS_XRES, ScannerPictureYres = WIA_IPS_YRES, ScannerPictureXpos = WIA_IPS_XPOS, ScannerPictureYpos = WIA_IPS_YPOS, ScannerPictureXextent = WIA_IPS_XEXTENT, ScannerPictureYextent = WIA_IPS_YEXTENT, ScannerPicturePhotometricInterp = WIA_IPS_PHOTOMETRIC_INTERP, ScannerPictureBrightness = WIA_IPS_BRIGHTNESS, ScannerPictureContrast = WIA_IPS_CONTRAST, ScannerPictureOrientation = WIA_IPS_ORIENTATION, ScannerPictureRotation = WIA_IPS_ROTATION, ScannerPictureMirror = WIA_IPS_MIRROR, ScannerPictureThreshold = WIA_IPS_THRESHOLD, ScannerPictureInvert = WIA_IPS_INVERT, ScannerPictureWarmUpTime = WIA_IPS_WARM_UP_TIME, } WiaItemPropertyId; //////////////////////////////////////////////////////////// // Forward Reference interface ICollection; //////////////////////////////////////////////////////////// // Item Object [ object, uuid(D06D503F-4B71-40f3-94A7-66478F732BC9), dual, helpstring("IWiaDeviceItem interface"), pointer_default(unique) ] interface IWiaDispatchItem : IDispatch { [propget, id(1), helpstring("Returns the current connection status")] HRESULT ConnectStatus( [out,retval] BSTR* pbstrStatus ); [propget, id(2), helpstring("Returns the current time on the device")] HRESULT Time( [out,retval] BSTR* pbstrTime ); [propget, id(3), helpstring("Returns the firmware version of the device")] HRESULT FirmwareVersion( [out,retval] BSTR* pbstrVersion ); [id(4), helpstring("Displays the acquisition dialog box")] HRESULT GetItemsFromUI([in, defaultvalue(0)] WiaFlag Flags, [in, defaultvalue(0)] WiaIntent Intent, [out, retval] ICollection** ppCollection); [id(5), helpstring( "Transfers the item to a file, or clipboard if filename is clipboard" )] HRESULT Transfer( [in] BSTR Filename, [in, defaultvalue((VARIANT_BOOL)0)] VARIANT_BOOL AsyncTransfer ); [id(6), helpstring( "Takes a Picture and returns it if successful" )] HRESULT TakePicture( [out, retval] IWiaDispatchItem** ppDispItem ); [propget, id(20), helpstring("Returns the Name of the item")] HRESULT Name( [out,retval] BSTR* pbstrName ); [propget, id(21), helpstring("Returns the full name of the item")] HRESULT FullName( [out,retval] BSTR* pbstrFullName ); [propget, id(22), helpstring("Returns the type of this item")] HRESULT ItemType( [out,retval] BSTR* pbstrType ); [propget, id(23), helpstring("Returns the width of the item in pixels")] HRESULT Width( [out,retval] long* plWidth ); [propget, id(24), helpstring("Returns the height of the item in pixels")] HRESULT Height( [out,retval] long* plHeight ); [propget, id(50), helpstring("Returns the width of the the item's thumbnail")] HRESULT ThumbWidth([out,retval] long* plWidth ); [propget, id(51), helpstring("Returns the height of the item's thumbnail")] HRESULT ThumbHeight( [out,retval] long* plHeight ); [propget, id(52), helpstring("Returns the path to the temporary image thumbnail")] HRESULT Thumbnail( [out,retval] BSTR* pbstrPath ); [propget, id(53), helpstring("Returns the height of the picture")] HRESULT PictureHeight( [out, retval] long* plHeight ); [propget, id(54), helpstring("Returns the width of the picture")] HRESULT PictureWidth( [out,retval] long* plWidth ); [propget, id(500), helpstring("Returns a collection of this items children")] HRESULT Children( [out,retval] ICollection** ppCollection ); [id(1000), helpstring("Returns the value of the property with the given id")] HRESULT GetPropById( [in] WiaItemPropertyId Id, [out,retval] VARIANT* pvaOut ); }; [ noncreatable, uuid(E6C45109-442C-4585-BE44-F5D2884E544A), helpstring("WiaItem Class") ] coclass Item { [default] interface IWiaDispatchItem; }; //////////////////////////////////////////////////////////// // DeviceInfo Object [ object, uuid(5267FF5E-7CAF-4769-865D-17A25968525E), dual, helpstring("IWiaDeviceInfo Interface"), pointer_default(unique) ] interface IWiaDeviceInfo : IDispatch { [id(1), helpstring("Create an Item for this device")] HRESULT Create( [out,retval] IWiaDispatchItem** ppDevice ); [propget, id(2), helpstring("Returns the id of the device")] HRESULT Id( [out,retval] BSTR* pbstrDeviceId ); [propget, id(3), helpstring("Returns the name of the device" )] HRESULT Name( [out,retval] BSTR* pbstrName ); [propget, id(4), helpstring("Returns the type of the device" )] HRESULT Type( [out,retval] BSTR* pbstrType ); [propget, id(5), helpstring("Returns the port the device is connected to" )] HRESULT Port( [out,retval] BSTR* pbstrPort ); [propget, id(6), helpstring("Returns the class id for the User Interface for this device" )] HRESULT UIClsid( [out,retval] BSTR* pbstrGuidUI ); [propget, id(7), helpstring("Returns the name of the manufacturer of this device" )] HRESULT Manufacturer( [out,retval] BSTR* pbstrVendor ); [id(1000), helpstring("Returns the value of the property with the given Id")] HRESULT GetPropById( [in] WiaDeviceInfoPropertyId Id, [out,retval] VARIANT* pvaOut ); }; [ noncreatable, uuid(34E1C006-99D2-4335-B0B1-CE7B9FE5396C), helpstring("DeviceInfo Class") ] coclass DeviceInfo { [default] interface IWiaDeviceInfo; }; //////////////////////////////////////////////////////////// // Collection Object [ object, uuid(C34C8CE7-B253-4f89-AA25-8A24AD71D0C0), dual, helpstring("ICollection Interface"), pointer_default(unique) ] interface ICollection : IDispatch { [propget, id(0), helpstring("Returns the specified item in the collection")] HRESULT Item( [in] long Index, [out, retval] IDispatch** ppDispItem ); [propget, id(1), helpstring( "Returns the number of members in the collection" )] HRESULT Count( [out,retval] long* pCount ); // Hidden for backwards compatibility [propget, id(2), hidden] HRESULT Length( [out, retval] unsigned long* plLength ); // hidden member required to mark interface as a collection [propget, id(DISPID_NEWENUM), hidden] HRESULT _NewEnum( [out, retval] IUnknown** ppEnum ); }; [ noncreatable, uuid(6E27C0E7-1D45-4ca7-9BF7-BD6CDDAA1ADC), helpstring("Collection Class") ] coclass Collection { [default] interface ICollection; }; //////////////////////////////////////////////////////////// // Collection Object [ object, uuid(B10BA1BC-3713-4EC0-8EEA-690EBD2CED8A), dual, helpstring("IWia Interface"), pointer_default(unique) ] interface IWia : IDispatch { [propget, id(1), helpstring( "Returns the DeviceInfo collection" )] HRESULT Devices( [out, retval] ICollection** ppCol ); [id(2), helpstring( "Creates a connection to the specified DeviceInfo, Id or Index" )] HRESULT Create( [in, unique] VARIANT* Device, [out,retval] IWiaDispatchItem** ppDevice ); [id(10010), hidden] HRESULT _DebugDialog( BOOL fWait ); }; // for some reason midl doesn't put the DIID in the header // this ensures that it is in the header which makes ATL a lot // happier. //REVIEW???? cpp_quote( "EXTERN_C const GUID DIID__IWiaEvents;" ) [ uuid(E5F04D72-6C16-42e2-BCCA-F8D0DB4ADE06), helpstring("Events fired by the IWia interface") ] dispinterface _IWiaEvents { properties: methods: [id(1), helpstring("Occurs when a device is connected" )] void OnDeviceConnected( BSTR Id ); [id(2), helpstring("Occurs when a device is disconnected")] void OnDeviceDisconnected( BSTR Id ); [id(3), helpstring("Occurs when a Transfer has completed")] void OnTransferComplete( IWiaDispatchItem* Item, BSTR Path ); }; [ uuid(4EC4272E-2E6F-4EEB-91D0-EBC4D58E8DEE), helpstring("WIA Class") ] coclass Wia { [default] interface IWia; [default, source] dispinterface _IWiaEvents; }; [ uuid(0DAD5531-BF31-43AC-A513-1F8926BBF5EC), helpstring("WIA Class (Safe for Scripting)") ] coclass SafeWia { [default] interface IWia; }; };