IDevicePacketStream::IsPacketAvailable
업데이트: 2007년 11월
읽을 수 있는 패킷이 있는지 확인합니다.
HRESULT IsPacketAvailable([retval][out] VARIANT_BOOL *pVal)
매개 변수
- pVal
데이터를 읽을 수 있으면 true이고, 그렇지 않으면 false입니다.
반환 값
메서드 호출의 결과를 나타내는 HRESULT 값입니다.
E_INVALIDARG | 인수가 잘못된 경우(pbDataAvailable이 NULL임)
E_FAIL | 기타 모든 실패의 경우
예제
이 예제에서 패킷 스트림은 연결되어 있는 동안 데스크톱의 RemoteAgent 개체에서 데이터를 읽습니다. 전체 예제를 보려면 IDeviceAgentTransport를 참조하십시오.
// Check for a packet while communication stream is connected.
f2(&pPacket);
VARIANT_BOOL connected;
pStream->IsConnected(&connected);
while(connected)
{
pStream->IsConnected(&connected);
VARIANT_BOOL available;
// If a packet is found, display the string.
pStream->IsPacketAvailable(&available);
if(available)
{
pStream->Read(&pPacket);
VARIANT_BOOL endofpacket;
pPacket->IsEndOfPacket(&endofpacket);
while (!endofpacket)
{
pPacket->IsEndOfPacket(&endofpacket);
DataTypeEnum datatype;
pPacket->ReadDataType(&datatype);
switch (datatype)
{
case DT_BYTE:
BYTE byteValue;
pPacket->ReadByte(&byteValue);
break;
case DT_INT32:
INT32 intValue;
pPacket->ReadInt32(&intValue);
break;
case DT_WIDECHAR:
wchar_t charValue;
pPacket->ReadChar(&charValue);
break;
case DT_BOOL:
VARIANT_BOOL boolValue;
pPacket->ReadBool(&boolValue);
break;
case DT_BYTEARRAY:
BYTE * buffer[100];
ULONG length;
pPacket->ReadBytes(buffer,&length);
break;
case DT_STRING:
LPWSTR string;
pPacket->ReadString(&string);
MessageBox(NULL, string,string,0);
break;
default:
break;
}
};
}
};
관리되는 동등 항목
IDevicePacketStream.IsPacketAvailable
요구 사항
DeviceAgentTransport.h