ISCardCmd::Encapsulate method

[The Encapsulate method is available for use in the operating systems specified in the Requirements section. It is not available for use in Windows Server 2003 with Service Pack 1 (SP1) and later, Windows Vista, Windows Server 2008, and subsequent versions of the operating system. The Smart Card Modules provide similar functionality.]

The Encapsulate method encapsulates the given command application protocol data unit (APDU) into another command APDU for transmission to a smart card.

Syntax

HRESULT Encapsulate(
  [in] LPBYTEBUFFER  pApdu,
  [in] ISO_APDU_TYPE ApduType
);

Parameters

pApdu [in]

Pointer to the APDU to be encapsulated.

ApduType [in]

ISO 7816-4 case for T=0 transmissions.

ISO_CASE_1

ISO_CASE_2

ISO_CASE_3

ISO_CASE_4

Return value

The method returns one of the following possible values.

Return code Description
S_OK
Operation completed successfully.
E_INVALIDARG
Invalid parameter.
E_POINTER
A bad pointer was passed in pApdu.
E_OUTOFMEMORY
Out of memory.

 

Remarks

To build a command APDU, call BuildCmd.

For a list of all the methods provided by this interface, see ISCardCmd.

In addition to the COM error codes listed above, this interface may return a smart card error code if a smart card function was called to complete the request. For more information, see Smart Card Return Values.

Examples

The following example shows how to encapsulate a command APDU. The example assumes that pIByteApdu is a valid pointer to an instance of the IByteBuffer interface.

HRESULT    hr;

// pIByteApdu is a pointer to an instance of IByteBuffer.
// Encapsulate the APDU.
hr = pISCardCmd->Encapsulate(pIByteApdu, ISO_CASE_1);
if (FAILED(hr)) 
{
    printf("Failed Encapsulate.\n");
    // Take other error handling action as needed.
}

Requirements

Requirement Value
Minimum supported client
Windows XP [desktop apps only]
Minimum supported server
Windows Server 2003 [desktop apps only]
End of client support
Windows XP
End of server support
Windows Server 2003
Header
Scarddat.h
Type library
Scarddat.tlb
DLL
Scardssp.dll
IID
IID_ISCardCmd is defined as D5778AE3-43DE-11D0-9171-00AA00C18068

See also

BuildCmd

ISCardCmd