IDevicePacketStream.Read メソッド

更新 : 2007 年 11 月

デスクトップ コンピュータ上の DevicePacketStream から送信されたパケットを読み取ります。

名前空間 :  Microsoft.SmartDevice.DeviceAgentTransport
アセンブリ :  Microsoft.SmartDevice.DeviceAgentTransport (Microsoft.SmartDevice.DeviceAgentTransport.dll 内)

構文

'宣言
Sub Read ( _
    <OutAttribute> ByRef out_pPacket As IPacket _
)
'使用
Dim instance As IDevicePacketStream
Dim out_pPacket As IPacket

instance.Read(out_pPacket)
void Read(
    out IPacket out_pPacket
)
void Read(
    [OutAttribute] IPacket^% out_pPacket
)
function Read(
    out_pPacket : IPacket
)

パラメータ

例外

例外 条件
COMException

HRESULT 情報を提供します。

E_INVALIDARG - 入力引数が無効です (パケットへの書き込みを実行できません)。

E_PENDING - 指定されたタイムアウト期限内に読み取りを完了できませんでした。ユーザーは、同じタイムアウト値または異なるタイムアウト値を指定して再試行できます。

E_FAIL - その他のエラー。

' Check for a packet while communication stream is connected.
While packetStream.IsConnected()
    ' If a packet is found, display the string and integer data.
    If packetStream.IsPacketAvailable() Then
        packetStream.Read(packet)
        Dim sb As New StringBuilder()
        While Not packet.IsEndOfPacket()
            Select Case packet.ReadDataType()
                Case DataType.BoolType
                    Dim boolValue As Boolean = packet.ReadBool()
                Case DataType.ByteArrayType
                    ' Read bytes and convert IntPtr to byte[]
                    Dim ptr As IntPtr
                    Dim size As System.UInt32 = 0
                    packet.ReadBytes(ptr, size)
                    Dim buffer As Byte() = InteropUtils.ConvertIntPtrToByteArray(ptr, _
                        Convert.ToInt32(size))
                Case DataType.ByteType
                    Dim byteValue As Byte = packet.ReadByte()
                Case DataType.CharType
                    Dim charValue As Char = packet.ReadChar()
                Case DataType.Int32Type
                    sb.Append("Int32Type:  " + packet.ReadInt32().ToString() + _
                              vbCr + vbLf)
                Case DataType.StringType
                    sb.Append("String:  " + packet.ReadString() + vbCr + vbLf)
                Case Else
            End Select
        End While
        MessageBox.Show(sb.ToString())
        Exit While
    End If
    System.Threading.Thread.Sleep(1000)
End While
// Check for a packet while communication stream is connected.
while (packetStream.IsConnected())
{
    // If a packet is found, display the string and integer data.
    if (packetStream.IsPacketAvailable())
    {
        packetStream.Read(out packet);
        StringBuilder sb = new StringBuilder();
        while (!packet.IsEndOfPacket())
        {
            switch (packet.ReadDataType())
            {
                case DataType.BoolType:
                    bool boolValue = packet.ReadBool();
                    break;
                case DataType.ByteArrayType:
                    // Read bytes and convert IntPtr to byte[]
                    IntPtr ptr;
                    uint size = 0;
                    packet.ReadBytes(out ptr, out size);
                    byte[] buffer = InteropUtils.ConvertIntPtrToByteArray(ptr, 
                        Convert.ToInt32(size));
                    break;
                case DataType.ByteType:
                    byte byteValue = packet.ReadByte();
                    break;
                case DataType.CharType:
                    char charValue = packet.ReadChar();
                    break;
                case DataType.Int32Type:
                    sb.Append("Int32Type:  " + packet.ReadInt32().ToString() + "\r\n");
                    break;
                case DataType.StringType:
                    sb.Append("String:  " + packet.ReadString() + "\r\n");
                    break;
                default:
                    break;
            }
        }
        MessageBox.Show(sb.ToString());
        break;
    }
    System.Threading.Thread.Sleep(1000);
}

アクセス許可

  • 直前の呼び出し元に対する完全な信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。

参照

参照

IDevicePacketStream インターフェイス

IDevicePacketStream メンバ

Microsoft.SmartDevice.DeviceAgentTransport 名前空間