次の方法で共有


IWSDOutboundAttachment::Write メソッド (wsdattachment.h)

MIME コンテナーを使用して、添付ファイル データをリモート ホストに送信します。

構文

HRESULT Write(
  [in]  const BYTE *pBuffer,
  [in]  DWORD      dwBytesToWrite,
  [out] LPDWORD    pdwNumberOfBytesWritten
);

パラメーター

[in] pBuffer

出力データを含むバッファーへのポインター。 アプリケーション・プログラムは、このデータ・バッファーの割り振りと解放を担当します。

[in] dwBytesToWrite

pBuffer からリモート ホストに送信するバイト数。

[out] pdwNumberOfBytesWritten

リモート ホストに実際に送信されたデータのバイト数を含む DWORD へのポインター。

戻り値

可能な戻り値には、次のものが含まれますが、これらに限定されません。

リターン コード 説明
S_OK
メソッドが正常に完了しました。
E_POINTER
pdwNumberofBytesWrittenNULL です
E_INVALIDARG
pBufferNULL です
HRESULT_FROM_WIN32(ERROR_INVALID_OPERATION)
送信添付ファイル インターフェイスが初期化されていません。 WSDCreateOutboundAttachment を呼び出して、インターフェイスを初期化します。
STG_S_BLOCK
内部バッファーを使用できませんでした。 データが受け入れられず、転送のためにキューに入れられました。

注釈

Write メソッドを使用すると、アプリケーション プログラムは任意のデータを MIME カプセル化されたメッセージ添付ファイルとしてリモート ホストに送信できます。 Write を最初に呼び出すと、送信添付ファイル ストリームが開き、HTTP ヘッダー、エンベロープ データ、および MIME でエンコードされたアプリケーション データの送信が開始されます。 Write の後続の呼び出しでは、アプリケーションが Close の呼び出しを行うまで、MIME でエンコードされたアプリケーション データの追加ブロックが送信されます。これにより、添付ファイル ストリームが閉じられ、メッセージ エンベロープ データとヘッダーの送信が完了します。

書き込み操作は、いくつかの条件下でブロックされる場合があります。 最初の操作では、 WRITE は HTTP ヘッダーと XML コンテンツが送信されるまでブロックします。 1 つのメッセージで複数の添付ファイルを送信する場合、添付ファイルに対する Write の最初の呼び出しは、以前の添付ファイル ストリームが完全に送信されるまでブロックされる可能性があります。 リモート ホストが応答しない場合、書き込みによって最大 30 秒間 (HTTP 送信タイムアウトあたり) ブロックされる場合があります。

接続の確立またはヘッダーの送信でエラーが発生した場合、 Write はエラー コードを直ちに返します。 データ転送エラーが発生した場合、そのエラーは、書 き込み または 閉じるの今後の呼び出しに遅延する可能性があります。

Write メソッドは、 STG_S_BLOCK を返した 書き込み 試行が 失敗した後に正常に返されることがあります。 後続の成功は、最初の試行が失敗した後に内部バッファーが使用のために解放されたことを示します。 アプリケーションがSTG_S_BLOCK受信した場合、アプリケーションは Write メソッドを使用して同じデータを再送信するか、Abort メソッドを使用してデータ転送を終了できます。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wsdattachment.h (Wsdapi.h を含む)
[DLL] Wsdapi.dll

こちらもご覧ください

IWSDInboundAttachment

IWSDOutboundAttachment

IWSDOutboundAttachment::Abort

IWSDOutboundAttachment::Close