InternetGetCookieA 関数 (wininet.h)
指定した URL の Cookie を取得します。
構文
BOOL InternetGetCookieA(
[in] LPCSTR lpszUrl,
[in] LPCSTR lpszCookieName,
[out] LPSTR lpszCookieData,
[in, out] LPDWORD lpdwSize
);
パラメーター
[in] lpszUrl
Cookie を取得する URL を指定する null で終わる文字列へのポインター。
[in] lpszCookieName
実装されていません。
[out] lpszCookieData
Cookie データを受け取るバッファーへのポインター。 このパラメーターは、NULL でもかまいません。
[in, out] lpdwSize
TCHAR の lpszCookieData パラメーター バッファーのサイズを指定する変数へのポインター。 関数が成功すると、バッファーは lpszCookieData バッファーにコピーされたデータの量を受け取ります。 lpszCookieData が NULL の場合、このパラメーターは、すべての Cookie データをコピーするために必要なバッファーのサイズをバイト数として表す値を受け取ります。
戻り値
関数が成功した場合、関数は TRUE を返します。
関数が失敗すると、 FALSE が返されます。 拡張エラー データを取得するには、 GetLastError を呼び出します。
InternetGetCookie には、次のエラー値が適用されます。
リターン コード | 説明 |
---|---|
|
指定された URL とそのすべての親に対する Cookie はありません。 |
|
lpdwSize で渡される値は、すべての Cookie データをコピーするには不十分です。 lpdwSize で返される値は、すべてのデータを取得するために必要なバッファーのサイズです。 |
|
1 つ以上のパラメーターが無効です。
lpszUrl パラメーターは NULL です。 |
解説
InternetGetCookie では、 InternetOpen の呼び出しは必要ありません。 InternetGetCookie は 、windows\cookies ディレクトリで、有効期限が将来設定される永続的な Cookie を確認します。 InternetGetCookie は 、セッション Cookie ( InternetSetCookie によって同じプロセスで作成された有効期限のない Cookie) についてもメモリを検索します。これらの Cookie はどのファイルにも書き込まれていないためです。 Cookie ファイルを作成するためのルールはシステムの内部であり、将来変更される可能性があります。
HTTP Cookie で説明したように、InternetGetCookie は、サーバーが Set-Cookie ヘッダーの "HttpOnly" 属性を使用してスクリプト化できないとマークされた Cookie を返しません。
WinINet API の他のすべての側面と同様に、この関数を DllMain またはグローバル オブジェクトのコンストラクターとデストラクター内から安全に呼び出すことはできません。
注意
wininet.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして InternetGetCookie を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wininet.h |
Library | Wininet.lib |
[DLL] | Wininet.dll |