Esta funcion es parte de DelphiTwain
Código Delphi
[-]
function TTwainSource.SetOneValue(Capability: TW_UINT16;
ItemType: TW_UINT16; Value: Pointer): TCapabilityRet;
var
Data: HGLOBAL;
OneV: pTW_ONEVALUE;
ItemSize,ItemSize2: Integer;
begin
ItemSize := TWTypeSize(ItemType);
if ItemSizethen ItemSize2:=TWTypeSize(TWTY_UINT32) else ItemSize2:=ItemSize;
Data := GlobalAlloc(GHND, sizeof(OneV^.ItemType) + ItemSize2);
OneV := GlobalLock(Data);
OneV^.ItemType := ItemType;
CopyMemory(@OneV^.Item, Value, ItemSize);
GlobalUnlock(Data);
Result := SetCapabilityRec(Capability, TWON_ONEVALUE, Data);
GlobalFree(Data);
end;