다음을 통해 공유


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

참고 항목

참조

IDevicePacketStream