CInternetFile クラス
インターネット プロトコルを使用するリモート システム上のファイルへのアクセスを許可します。
構文
class CInternetFile : public CStdioFile
メンバー
保護されたコンストラクター
名前 | 説明 |
---|---|
CInternetFile::CInternetFile | CInternetFile オブジェクトを構築します。 |
パブリック メソッド
名前 | 説明 |
---|---|
CInternetFile::Abort | すべての警告とエラーを無視して、ファイルを閉じます。 |
CInternetFile::Close | リソースを CInternetFile 閉じて解放します。 |
CInternetFile::Flush | 書き込みバッファーの内容をフラッシュし、メモリ内のデータがターゲット コンピューターに書き込まれることを確認します。 |
CInternetFile::GetLength | ファイルのサイズを返します。 |
CInternetFile::Read | 指定したバイト数を読み取ります。 |
CInternetFile::ReadString | 文字のストリームを読み取ります。 |
CInternetFile::Seek | 開いているファイル内のポインターの位置を変更します。 |
CInternetFile::SetReadBufferSize | データを読み取るバッファーのサイズを設定します。 |
CInternetFile::SetWriteBufferSize | データが書き込まれるバッファーのサイズを設定します。 |
CInternetFile::Write | 指定したバイト数を書き込みます。 |
CInternetFile::WriteString | null で終わる文字列をファイルに書き込みます。 |
パブリック演算子
名前 | 説明 |
---|---|
CInternetFile::operator HINTERNET | インターネット ハンドルのキャスト演算子。 |
プロテクト データ メンバー
名前 | 説明 |
---|---|
CInternetFile::m_hFile | ファイルへのハンドル。 |
解説
CHttpFile ファイル クラスと CGopherFile ファイル クラスの基本クラスを提供します。 オブジェクトを CInternetFile
直接作成することはありません。 代わりに、CGopherConnection::OpenFile または CHttpConnection::OpenRequest を呼び出して、派生クラスの 1 つのオブジェクトを作成します。 CFtpConnection::OpenFile を呼び出してオブジェクトを作成CInternetFile
することもできます。
メンバーCInternetFile
関数 Open
、、LockRange
UnlockRange
およびDuplicate
に対してCInternetFile
実装されていません。 オブジェクトでこれらの関数をCInternetFile
呼び出すと、CNotSupportedException が取得されます。
他の MFC インターネット クラスでの動作の詳細については、WinInet を使用したインターネット プログラミングに関CInternetFile
する記事を参照してください。
継承階層
CInternetFile
必要条件
ヘッダー: afxinet.h
CInternetFile::Abort
このオブジェクトに関連付けられているファイルを閉じ、ファイルを読み取りまたは書き込みに使用できないようにします。
virtual void Abort();
解説
オブジェクトを破棄する前にファイルを閉じていない場合は、デストラクターによって閉じられます。
例外を処理する場合、 Abort
2 つの重要な点で Close とは異なります。 最初に Abort
、関数はエラーを無視するため、エラー時に例外をスローしません。 次に、Abort
ファイルが開かStandard Edition以前に閉じられなかった場合は、AS Standard Edition RT を実行しません。
CInternetFile::CInternetFile
このメンバー関数は、オブジェクトの作成時に CInternetFile
呼び出されます。
CInternetFile(
HINTERNET hFile,
LPCTSTR pstrFileName,
CInternetConnection* pConnection,
BOOL bReadMode);
CInternetFile(
HINTERNET hFile,
HINTERNET hSession,
LPCTSTR pstrFileName,
LPCTSTR pstrServer,
DWORD_PTR dwContext,
BOOL bReadMode);
パラメーター
hFile
インターネット ファイルへのハンドル。
pstrFileName
ファイル名を含む文字列へのポインター。
pConnection
CInternetConnection オブジェクトへのポインター。
bReadMode
ファイルが読み取り専用かどうかを示します。
hSession
インターネット セッションへのハンドル。
pstrServer
サーバーの名前を含む文字列へのポインター。
dwContext
オブジェクトの CInternetFile
コンテキスト識別子。 コンテキスト識別子の詳細については、「 WinInet の基本」 を参照してください。
解説
オブジェクトを CInternetFile
直接作成することはありません。 代わりに、CGopherConnection::OpenFile または CHttpConnection::OpenRequest を呼び出して、派生クラスの 1 つのオブジェクトを作成します。 CFtpConnection::OpenFile を呼び出してオブジェクトを作成CInternetFile
することもできます。
CInternetFile::Close
リソースを CInternetFile
閉じて、そのリソースを解放します。
virtual void Close();
解説
ファイルが書き込み用に開かれた場合は、バッファー内のすべてのデータがホストに書き込まれることを保証するために、Flush の暗黙的な呼び出しがあります。 ファイルの使用が完了したら、呼び出 Close
す必要があります。
CInternetFile::Flush
このメンバー関数を呼び出して、書き込みバッファーの内容をフラッシュします。
virtual void Flush();
解説
メモリ内のすべてのデータが実際にターゲット コンピューターに書き込まれたことを確認し、ホスト コンピューターとのトランザクションが完了したことを確認するために使用 Flush
します。 Flush
は、書き込み用に CInternetFile
開かれたオブジェクトでのみ有効です。
CInternetFile::GetLength
ファイルのサイズを返します。
virtual ULONGLONG GetLength() const;
CInternetFile::m_hFile
このオブジェクトに関連付けられているファイルへのハンドル。
HINTERNET m_hFile;
CInternetFile::operator HINTERNET
この演算子を使用して、現在のインターネット セッションの Windows ハンドルを取得します。
operator HINTERNET() const;
CInternetFile::Read
このメンバー関数を呼び出して、指定されたメモリを読み取ります。lpvBuf から始まり、指定したバイト数 nCount から始まります。
virtual UINT Read(
void* lpBuf,
UINT nCount);
パラメーター
lpBuf
ファイル データを読み込むメモリ アドレスへのポインター。
nCount
書き込むバイト数。
戻り値
バッファーに転送するバイト数。 ファイルの末尾に達した場合、戻り値は nCount 未満になる可能性があります。
解説
この関数は、実際に読み取られたバイト数を返します。ファイルが終了した場合は nCount 未満になる可能性があります。 ファイルの読み取り中にエラーが発生した場合、この関数はエラーを 記述する CInternetException オブジェクトをスローします。 ファイルの末尾を越える読み取りはエラーとは見なされず、例外がスローされないことに注意してください。
すべてのデータが確実に取得されるようにするには、アプリケーションはメソッドがゼロを返すまでメソッドを CInternetFile::Read
呼び出し続ける必要があります。
CInternetFile::ReadString
改行文字が見つかるまで、このメンバー関数を呼び出して文字のストリームを読み取ります。
virtual BOOL ReadString(CString& rString);
virtual LPTSTR ReadString(
LPTSTR pstr,
UINT nMax);
パラメーター
pstr
読み取られる行を受け取る文字列へのポインター。
nMax
読み取る最大文字数。
rString
読み取り行を 受け取る CString オブジェクトへの参照。
戻り値
CInternetFile オブジェクトから取得されたプレーン データを含むバッファーへのポインター。 このメソッドに渡されるバッファーのデータ型に関係なく、データに対する操作 (Unicode への変換など) は実行されないため、型が返されたかのように void
* 、返されたデータを想定した構造体にマップする必要があります。
データを読み取らずにファイルの終わりに達した場合は NULL。または、ブール値の場合は FAL Standard Edition データを読み取らずにファイルの終わりに達した場合。
解説
この関数は、結果の行を pstr パラメーターによって参照されるメモリに配置します。 nMax で指定された最大文字数に達すると、文字の読み取りが停止します。 バッファーは常に終端の null 文字を受け取ります。
最初に SetReadBufferSize を呼び出さずに呼び出ReadString
すと、4096 バイトのバッファーが取得されます。
CInternetFile::Seek
このメンバー関数を呼び出して、以前に開いたファイル内のポインターの位置を変更します。
virtual ULONGLONG Seek(
LONGLONG lOffset,
UINT nFrom);
パラメーター
lOffset
ファイル内の読み取り/書き込みポインターを移動するためのバイト単位のオフセット。
nFrom
オフセットの相対参照。 次のいずれかの値を指定する必要があります。
CFile::begin
ファイル ポインター lOff バイトをファイルの先頭から前方に移動します。CFile::current
ファイル ポインター lOff バイトをファイル内の現在の位置から移動します。CFile::end
ファイル ポインター lOff バイトをファイルの末尾から移動します。 既存のファイルをシークするには、lOff が負である必要があります。正の値はファイルの末尾を超えてシークします。
戻り値
要求された位置が有効な場合、ファイルの先頭からの新しいバイト オフセット。それ以外の場合、値は未定義であり、 CInternetException オブジェクトがスローされます。
解説
この関数は Seek
、ポインターを指定された量 (絶対または比較的) 移動することで、ファイルの内容へのランダム アクセスを許可します。 シーク中にデータが実際に読み取られます。
現時点では、このメンバー関数の呼び出しは、オブジェクトに関連付けられている CHttpFile
データに対してのみサポートされています。 FTP または gopher 要求ではサポートされていません。 これらのサポートされていないサービスのいずれかを呼び出 Seek
すと、Win32 エラー コード ERROR_INTERNET_INVALID_OPERATIONに戻ります。
ファイルを開くと、ファイル ポインターはオフセット 0 (ファイルの先頭) にあります。
Note
使用するとSeek
、Flush の暗黙的な呼び出しが発生する可能性があります。
例
基底クラスの実装 ( CFile::Seek) の例を参照してください。
CInternetFile::SetReadBufferSize
このメンバー関数を呼び出して、-derived オブジェクトによって使用される一時読み取りバッファーのサイズを CInternetFile
設定します。
BOOL SetReadBufferSize(UINT nReadSize);
パラメーター
nReadSize
バイト単位のバッファー サイズ。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。 呼び出しが失敗した場合、Win32 関数 GetLastError を呼び出してエラーの原因を特定できます。
解説
基になる WinInet API はバッファリングを実行しないため、読み取るデータの量に関係なく、アプリケーションが効率的にデータを読み取ることができるバッファー サイズを選択します。 通常、Read の各呼び出しに大量のデータ (4 KB 以上など) が含まれる場合は、バッファーは必要ありません。 ただし、データの小さなチャンクを取得するために呼び出Read
す場合、または ReadString を使用して一度に個々の行を読み取る場合は、読み取りバッファーによってアプリケーションのパフォーマンスが向上します。
既定では、 CInternetFile
オブジェクトは読み取り用のバッファリングを提供しません。 このメンバー関数を呼び出す場合は、ファイルが読み取りアクセス用に開かれていることを確認する必要があります。
バッファー サイズはいつでも増やすことができますが、バッファーを縮小しても効果はありません。 最初に呼び出さずに ReadString を呼び出SetReadBufferSize
すと、4096 バイトのバッファーが取得されます。
CInternetFile::SetWriteBufferSize
このメンバー関数を呼び出して、-derived オブジェクトによって使用される一時書き込みバッファーのサイズを CInternetFile
設定します。
BOOL SetWriteBufferSize(UINT nWriteSize);
パラメーター
nWriteSize
バッファーのサイズ (バイト単位)。
戻り値
正常終了した場合は 0 以外を返します。それ以外の場合は 0 を返します。 呼び出しが失敗した場合、Win32 関数 GetLastError を呼び出してエラーの原因を特定できます。
解説
基になる WinInet API はバッファリングを実行しないため、書き込むデータの量に関係なく、アプリケーションが効率的にデータを書き込むことができるようにするバッファー サイズを選択します。 Write の各呼び出しに通常大量のデータが含まれている場合 (たとえば、一度に 4 KB 以上)、バッファーは必要ありません。 ただし、Write を呼び出してデータの小さなチャンクを書き込む場合、書き込みバッファーによってアプリケーションのパフォーマンスが向上します。
既定では、オブジェクトは CInternetFile
書き込みのためのバッファリングを提供しません。 このメンバー関数を呼び出す場合は、ファイルが書き込みアクセス用に開かれていることを確認する必要があります。 書き込みバッファーのサイズはいつでも変更できますが、これを行うと、Flush の暗黙的な呼び出しが発生します。
CInternetFile::Write
このメンバー関数を呼び出して、指定されたメモリ lpvBuf (指定されたバイト数 nCount) に書き込みます。
virtual void Write(
const void* lpBuf,
UINT nCount);
パラメーター
lpBuf
書き込まれる最初のバイトへのポインター。
nCount
書き込むバイト数を指定します。
解説
データの書き込み中にエラーが発生した場合、関数はエラーを 記述する CInternetException オブジェクトをスローします。
CInternetFile::WriteString
この関数は、null で終わる文字列を関連付けられたファイルに書き込みます。
virtual void WriteString(LPCTSTR pstr);
パラメーター
pstr
書き込む内容を含む文字列へのポインター。
解説
データの書き込み中にエラーが発生した場合、関数はエラーを 記述する CInternetException オブジェクトをスローします。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示