|
|
Available in the LEADTOOLS Imaging toolkit. |
SetCapability Example for C++ 5.0 and later
ILEADRasterTwain_U * pRasterTwain;
short iRet;
ICapability_U * pCapability = NULL;
ICapabilityOneValue_U * pCapOV = NULL;
HRESULT hr = ::CoCreateInstance(CLSID_LEADRasterTwain_U, NULL, CLSCTX_ALL, IID_ILEADRasterTwain_U, (void **)&pRasterTwain);
if (FAILED(hr) || !pRasterTwain)
{
::MessageBox (NULL, _TEXT("Failed to create a Raster Twain Object"), _TEXT("Error"), MB_OK);
return;
}
pRasterTwain->InitSession((long)GetSafeHwnd());
pRasterTwain->SelectSource();
hr = ::CoCreateInstance (CLSID_LEADRasterTwainCapability_U, NULL, CLSCTX_ALL, IID_ICapability_U, (void **)&pCapability);
if (FAILED (hr) || pCapability == NULL)
return;
pCapability->put_EnableMethodErrors(VARIANT_FALSE);
pCapability->ConType = L_TWON_DONTCARE16;
pCapability->Capability = L_ICAP_UNITS;
iRet = pRasterTwain->GetCapability(pCapability, L_LTWAIN_CAPABILITY_GETCURRENT);
if (iRet != 0)
::MessageBox(NULL, TEXT("Error Getting Capability"), NULL, MB_OK);
pCapability->QueryInterface (IID_ICapabilityOneValue_U, (void **)&pCapOV);
if (!pCapOV)
{
pCapability->Release ();
return;
}
//Set the units to inches
pCapability->put_Capability(L_ICAP_UNITS);
pCapability->put_ConType (L_TWON_ONEVALUE);
ILEADRasterVariant_U * CapVal = NULL;
CoCreateInstance(CLSID_LEADRasterVariant_U, NULL, CLSCTX_ALL,
IID_ILEADRasterVariant_U, (void **)&CapVal);
CapVal->Type = VALUE_USHORT;
CapVal->LongValue = L_TWUN_INCHES;
pCapOV->put_OneValItemType (L_TWTY_UINT16);
pCapOV->put_OneValCapValue (CapVal);
iRet = pRasterTwain->SetCapability (pCapability, L_LTWAIN_CAPABILITY_SET);
pCapOV->Release ();
pCapability->Release ();
CapVal->Release();