WIA_DPS_PAGE_SIZE

The WIA_DPS_PAGE_SIZE property contains the size of the page that is currently selected to be scanned.

Property Type: VT_I4

Valid Values: WIA_PROP_LIST

Access Rights: Read/write

Remarks

To select the dimensions of the page to scan, an application sets WIA_DPS_PAGE_SIZE. The WIA minidriver creates and maintains this property.

The following table describes the constants that are valid with WIA_IPS_PAGE_SIZE.

ValueDefinition

WIA_PAGE_A4

The page size is 8267 × 11692 (PORTRAIT orientation).

WIA_PAGE_CUSTOM

The page size is defined by the values of the WIA_DPS_PAGE_HEIGHT and WIA_DPS_PAGE_WIDTH properties.

WIA_PAGE_LETTER

The page size is 8500 × 11000 (PORTRAIT orientation).

 

The value of the WIA_IPS_ORIENTATION property determines the orientation of the currently selected page. The WIA_DPS_PAGE_WIDTH and WIA_DPS_PAGE_HEIGHT properties report the page's dimensions, in thousandths of an inch (.001). These properties must have values that are equivalent to the WIA_IPS_XEXTENT and WIA_IPS_YEXTENT properties, which contain the page's dimensions, in pixels.

WIA_PROP_LIST-typed values should depend on valid settings of the WIA_IPS_ORIENTATION property. If a device cannot scan landscape-oriented documents with a WIA_PAGE_A4 setting, WIA_PAGE_A4 should not appear in the list of valid values for the WIA_DPS_PAGE_SIZE property when WIA_IPS_ORIENTATION is set to LANSCAPE.

If an application sets WIA_DPS_PAGE_SIZE to any value other than WIA_PAGE_CUSTOM, the minidriver should adjust the values of WIA_DPS_PAGE_WIDTH and WIA_DPS_PAGE_HEIGHT to the page's dimensions, in thousandths of an inch (.001). The minidriver should also adjust the values of WIA_IPS_XEXTENT and WIA_IPS_YEXTENT to the page's dimensions, in pixels.

If an extent setting (WIA_IPS_XEXTENT or WIA_IPS_YEXTENT) is changed to a value that does not match the current page-size setting, the minidriver should change the value of the WIA_DPS_PAGE_SIZE property to WIA_PAGE_CUSTOM. The minidriver should also modify WIA_DPS_PAGE_WIDTH or WIA_DPS_PAGE_HEIGHT in accordance with the new extent setting.

If WIA_IPS_ORIENTATION is set to LANSCAPE, the extent settings will be "flipped." For example, if an application sets WIA_DPS_PAGE_SIZE to WIA_PAGE_A4, the minidriver should set WIA_DPS_PAGE_WIDTH to 11692 and WIA_DPS_PAGE_HEIGHT to 8267. (The minidriver should also set WIA_IPS_XEXTENT and WIA_IPS_YEXTENT accordingly.) Note that if WIA_DPS_PAGE_SIZE is set to WIA_PAGE_CUSTOM, the orientation setting is not used to determine the extent dimensions of the page to be scanned.

The minidriver must ensure that the WIA_IPS_ORIENTATION property agrees with the current selection area. If an application changes the value of WIA_IPS_ORIENTATION to one that is invalid for the currently selected page size, the minidriver should change the value of WIA_DPS_PAGE_SIZE to a page size that is supported by the new orientation value.

If an application sets the WIA_DPS_PAGE_SIZE property to WIA_PAGE_CUSTOM, the current selection area is not affected. The WIA minidriver should obtain the current image layout, starting from the current settings of the WIA_IPS_XPOS and WIA_IPS_YPOS properties. If the page-size setting results in a selection area that is outside the scanner's bed, the minidriver must automatically adjust the values of the WIA_IPS_XPOS and WIA_IPS_YPOS properties to valid settings. If the WIA_DPS_PAGE_SIZE and WIA_IPS_ORIENTATION properties are set at the same time and they are invalid when they are applied in combination, the minidriver should fail the application's settings by returning an error in the IWiaMiniDrv::drvValidateItemProperties method.

The following four code examples show the following WIA_DPS_PAGE_SIZE scenarios:

  1. The driver reports the settings.

  2. An application sets the WIA_DPS_PAGE_SIZE property to WIA_PAGE_LETTER.

  3. An application sets the WIA_IPS_ORIENTATION property to LANSCAPE.

  4. An application changes the WIA_IPS_XEXTENT property to a smaller value.

Example 1: The minidriver reports the settings

In the following code example, the minidriver sets a custom selection area before an application sets any WIA properties. In this case, the selection area represents the entire flatbed.


WIA_DPS_PAGE_SIZE = WIA_PAGE_CUSTOM
WIA_DPS_PAGE_WIDTH = 11500
WIA_DPS_PAGE_HEIGHT = 14000
WIA_IPS_ORIENTATION  = PORTRAIT
WIA_IPS_XPOS = 0
WIA_IPS_YPOS = 0
WIA_IPS_XEXTENT = 1150
WIA_IPS_YEXTENT = 1400
WIA_IPS_XRES = 100
WIA_IPS_YRES = 100

Example 2: An application sets the WIA_DPS_PAGE_SIZE property to WIA_PAGE_LETTER


WIA_DPS_PAGE_SIZE = WIA_PAGE_LETTER
WIA_DPS_PAGE_WIDTH = 8500
WIA_DPS_PAGE_HEIGHT = 11000
WIA_IPS_ORIENTATION  = PORTRAIT
WIA_IPS_XPOS = 0
WIA_IPS_YPOS = 0
WIA_IPS_XEXTENT = 850
WIA_IPS_YEXTENT = 1100
WIA_IPS_XRES = 100
WIA_IPS_YRES = 100

Example 3: An application sets the WIA_IPS_ORIENTATION property to LANSCAPE

The physical bed must be able to acquire a page that was originally in landscape orientation.


WIA_DPS_PAGE_SIZE = WIA_PAGE_LETTER
WIA_DPS_PAGE_HEIGHT = 11000
WIA_DPS_PAGE_WIDTH = 8500
WIA_IPS_ORIENTATION  = LANSCAPE
WIA_IPS_XPOS = 0
WIA_IPS_YPOS = 0
WIA_IPS_XEXTENT = 1100
WIA_IPS_YEXTENT = 850
WIA_IPS_XRES = 100
WIA_IPS_YRES = 100

Example 4: An application changes the WIA_IPS_XEXTENT property to a smaller value

In the following code example, an application changes the WIA_IPS_XEXTENT property to 1000. The minidriver should assume that the new value for WIA_IPS_XEXTENT is no longer valid for the WIA_DPS_PAGE_SIZE property and should thus change WIA_DPS_PAGE_SIZE to WIA_PAGE_CUSTOM. The minidriver must also adjust WIA_DPS_PAGE_WIDTH.


WIA_DPS_PAGE_SIZE = WIA_PAGE_CUSTOM
WIA_DPS_PAGE_HEIGHT = 10000
WIA_DPS_PAGE_WIDTH = 8500
WIA_IPS_ORIENTATION  = LANSCAPE
WIA_IPS_XPOS = 0
WIA_IPS_YPOS = 0
WIA_IPS_XEXTENT = 1000
WIA_IPS_YEXTENT = 850
WIA_IPS_XRES = 100
WIA_IPS_YRES = 100

Requirements

Version

Available for Microsoft Windows XP. For Windows Vista and later, use the identical WIA_IPS_PAGE_SIZE property.

Header

Wiadef.h (include Wiadef.h)

See also

IWiaMiniDrv::drvValidateItemProperties
WIA_DPS_PAGE_HEIGHT
WIA_DPS_PAGE_SIZE
WIA_DPS_PAGE_WIDTH
WIA_IPS_ORIENTATION
WIA_IPS_PAGE_SIZE
WIA_IPS_XEXTENT
WIA_IPS_XPOS
WIA_IPS_YEXTENT
WIA_IPS_YPOS

 

 

Send comments about this topic to Microsoft

Show: