ISCardTypeConv::ConvertSafeArrayToByteBuffer method

[The ConvertSafeArrayToByteBuffer 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 ConvertSafeArrayToByteBuffer method converts a byte array defined as a SAFEARRAY into a universal buffer of bytes (IStream object).

The byte buffer created is a stream mapped over a memory block. To access or manage the buffer, use the methods provided by the IStream interface. A unique feature about this array implementation is that when you call the IStream::Release method, the underlying memory will be released for you.

Syntax

HRESULT ConvertSafeArrayToByteBuffer(
  [in]  LPSAFEARRAY  pbyArray,
  [out] LPBYTEBUFFER *ppbyBuff
);

Parameters

pbyArray [in]

Pointer to the SAFEARRAY to be converted.

ppbyBuff [out]

Pointer to the IStream object to be returned.

Return value

The method returns one of the following possible values:

Return code Description
S_OK
Memory allocated successfully.
E_INVALIDARG
There is something wrong with one or more of the parameters passed into the function.
E_POINTER
A parameter of pointer type was incorrect.
E_OUTOFMEMORY
Not enough free memory to satisfy request.

 

Remarks

Memory allocated is moveable. Use the IStream::Release method to free the memory.

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_ISCardTypeConv is defined as 53B6AA63-3F56-11D0-916B-00AA00C18068

See also

ISCardTypeConv

Smart Card Return Values