# aardio 范例: COM 接口 - 扫描仪



```aardio
//COM 接口 - 扫描仪
import fonts.fontAwesome;
import win.ui;
/*DSG{{*/
var winform = win.form(text="调用扫描仪";right=759;bottom=469)
winform.add(
plus={cls="plus";left=9;top=10;right=751;bottom=459;font=LOGFONT(h=-32;name='FontAwesome');repeat="scale";z=1}
)
/*}}*/

winform.show();
winform.plus.disabledText = {'\uF254';'\uF251';'\uF252';'\uF253';'\uF250'}

//创建线程
thread.invoke( 
	function(winform){
		import com;
		
		//https://learn.microsoft.com/zh-cn/previous-versions/windows/desktop/wiaaut/-wiaaut-commondialog
		var cdc = com.CreateObject("WIA.CommonDialog");
		var device = cdc.ShowSelectDevice(cdc.ScannerDeviceType,true,false);
		var scannerDevice = device.Items(1);
		
		//设置扫描仪属性
		scannerDevice.setProperties("Horizontal Resolution",300);
		scannerDevice.setProperties("Vertical Resolution",300);
		scannerDevice.setProperties("Current Intent",scannerDevice.ColorIntent);
		
		/*
		//显示获取图像对话框
		var imageFile = cdc.ShowAcquireImage(cdc.ScannerDeviceType
    		,cdc.ColorIntent,cdc.MaximizeQuality, "{00000000-0000-0000-0000-000000000000}"
    		,true,true,false);
		*/
		
		//直接获取图像
		var imageFile = scannerDevice.Transfer(cdc.wiaFormatJPEG);
		
		//https://learn.microsoft.com/zh-cn/previous-versions/windows/desktop/wiaaut/-wiaaut-iimagefile-filedata
		winform.plus.background = imageFile.FileData.BinaryData;
		winform.plus.disabledText = null;
	},winform
);

win.loopMessage();
```

