Microsoft DirectX 8.0

ポインタ有効マクロ

Microsoft® DirectShow® はポインタの有効性を確認するいくつかのマクロを提供する。

宣言 : Wxdebug.h

マクロ説明
CheckPointerポインタが NULL かどうかチェックする。
ValidateReadPtr呼び出しプロセスがメモリ ブロックへの読み込みアクセスを持っている事を検証する。
ValidateReadWritePtr呼び出しプロセスがメモリ ブロックへの読み込みと書き込みのアクセスを持っている事を検証する。
ValidateStringPtr呼び出しプロセスが文字列への読み込みアクセスを持っている事を検証する。
ValidateStringPtrA呼び出しプロセスが ANSI 文字列への読み込みアクセスを持っている事を検証する。
ValidateStringPtrW呼び出しプロセスがワイド キャラクタ文字列への読み込みアクセスを持っている事を検証する。
ValidateWritePtr呼び出しプロセスがメモリ ブロックへの書き込みアクセスを持っている事を検証する。

CheckPointer

ポインタ有効マクロ

ポインタが NULL かどうかチェックする。ポインタが NULL なら、マクロがあるその関数あるいはメソッドは指定した値を返す。

構文

CheckPointer(
    p,
    ret
);

パラメータ

p
チェックするポインタ。
ret
p が NULL のとき、この関数あるいはメソッドが返す値。

HRESULT MyFunction(VOID *pSomeParameter)
{
    CheckPointer(pSomeParameter, E_INVALIDARG)

    // 関数の残り (省略)。
}

ValidateReadPtr

ポインタ有効マクロ

呼び出しプロセスがメモリ ブロックへの読み込みアクセスを持っている事を検証する。持っていない場合、このマクロは DbgBreak マクロを呼び出す。

構文

ValidateReadPtr(
    const void *p,
    UINT cb
);

パラメータ

p
メモリ ブロックへのポインタ。
cb
メモリ ブロックのサイズ、バイト単位。

注意

DirectShow 基底クラス ヘッダー ファイルがインクルードされたとき、DEBUG あるいは VFWROBUST が定義されるまで、このマクロは無視される。このマクロはパフォーマンスに大きな影響を与える。

ValidateReadWritePtr

ポインタ有効マクロ

呼び出しプロセスがメモリ ブロックへの読み込みと書き込みのアクセスを持っている事を検証する。持っていない場合、このマクロは DbgBreak を呼び出す。

構文

ValidateReadWritePtr(
    const void *p,
    UINT cb
);

パラメータ

p
メモリ ブロックへのポインタ。
cb
メモリ ブロックのサイズ、バイト単位。

注意

DirectShow 基底クラス ヘッダー ファイルがインクルードされたとき、DEBUG あるいは VFWROBUST が定義されるまで、このマクロは無視される。このマクロはパフォーマンスに大きな影響を与える。

ValidateStringPtr

ポインタ有効マクロ

呼び出しプロセスが文字列への読み込みアクセスを持っている事を検証する。 持っていない場合、このマクロは DbgBreak を呼び出す。

構文

ValidateStringPtr(
    LPCTSTR p
);

パラメータ

p
NULL で終わる TCHAR 文字列へのポインタ。

注意

DirectShow 基底クラス ヘッダー ファイルがインクルードされたとき、DEBUG あるいは VFWROBUST が定義されるまで、このマクロは無視される。このマクロはパフォーマンスに大きな影響を与える。

ValidateStringPtrA

ポインタ有効マクロ

呼び出しプロセスが ANSI 文字列への読み込みアクセスを持っている事を検証する。持っていない場合、このマクロは DbgBreak を呼び出す。

構文

ValidateStringPtrA(
    LPCSTR p
);

パラメータ

p
NULL で終わる ANSI 文字列へのポインタ。

注意

DirectShow 基底クラス ヘッダー ファイルがインクルードされたとき、DEBUG あるいは VFWROBUST が定義されるまで、このマクロは無視される

ValidateStringPtrW

ポインタ有効マクロ

呼び出しプロセスがワイド キャラクタ文字列への読み込みアクセスを持っている事を検証する。持っていない場合、このマクロは DbgBreak を呼び出す。

構文

ValidateStringPtrW(
    LPCWSTR p
);

パラメータ

p
NULL 出終わるワイド キャラクタ文字列へのポインタ。

注意

DirectShow 基底クラス ヘッダー ファイルがインクルードされたとき、DEBUG あるいは VFWROBUST が定義されるまで、このマクロは無視される。このマクロはパフォーマンスに大きな影響を与える。

ValidateWritePtr

ポインタ有効マクロ

呼び出しプロセスがメモリ ブロックへの書き込みアクセスを持っている事を検証する。 持っていない場合、このマクロは DbgBreak を呼び出す。

構文

ValidateWritePtr(
    const void *p,
    UINT cb
);

パラメータ

p
メモリ ブロックへのポインタ。
cb
メモリ ブロックのサイズ、バイト単位。

注意

DirectShow 基底クラス ヘッダー ファイルがインクルードされたとき、DEBUG あるいは VFWROBUST が定義されるまで、このマクロは無視される。このマクロはパフォーマンスに大きな影響を与える。