ISCardTypeConv::GetAtIStreamMemory method

[The GetAtIStreamMemory 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 GetAtIStreamMemory method acquires a byte pointer to the HGLOBAL memory block that is managed by the IStream COM interface.

This is a way to get at the memory under the IStream without having to get the sizeof value for the memory block in bytes and read the bytes into a temporary byte array using the IStream interface.

Syntax

HRESULT GetAtIStreamMemory(
  [in]  LPSTREAM    pStrm,
  [out] LPBYTEARRAY *ppMem
);

Parameters

pStrm [in]

A pointer to the IStream COM interface that manages the HGLOBAL memory block.

ppMem [out]

A pointer to the first byte of the HGLOBAL memory block if successful; else, NULL if operation fails.

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

The IStream reference count will be incremented for each ppMem pointer acquired.

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