共用方式為


IDevicePacketStream::Read

更新:2007 年 11 月

讀取桌上型電腦上的 DevicePacketStream 所傳送的封包。

HRESULT Read([retval][out] IPacket **out_ppPacket)

參數

  • out_ppPacket
    資料會讀入封包。

傳回值

HRESULT 值,表示方法呼叫的結果。

  • E_INVALIDARG | 輸入引數無效 (無法寫入至封包)。

  • E_PENDING | 無法在指定的逾時時間內完成讀取。使用者能以相同或不同的逾時值 (Time-Out Value) 再次嘗試。

  • 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;
            }
        };
    }
};

Managed 對應項

IDevicePacketStream.Read

需求

DeviceAgentTransport.h

請參閱

參考

IDevicePacketStream