Microsoft DirectX 8.0 |
Microsoft® DirectShow® はポインタの有効性を確認するいくつかのマクロを提供する。
宣言 : Wxdebug.h
マクロ | 説明 |
---|---|
CheckPointer | ポインタが NULL かどうかチェックする。 |
ValidateReadPtr | 呼び出しプロセスがメモリ ブロックへの読み込みアクセスを持っている事を検証する。 |
ValidateReadWritePtr | 呼び出しプロセスがメモリ ブロックへの読み込みと書き込みのアクセスを持っている事を検証する。 |
ValidateStringPtr | 呼び出しプロセスが文字列への読み込みアクセスを持っている事を検証する。 |
ValidateStringPtrA | 呼び出しプロセスが ANSI 文字列への読み込みアクセスを持っている事を検証する。 |
ValidateStringPtrW | 呼び出しプロセスがワイド キャラクタ文字列への読み込みアクセスを持っている事を検証する。 |
ValidateWritePtr | 呼び出しプロセスがメモリ ブロックへの書き込みアクセスを持っている事を検証する。 |
ポインタが NULL かどうかチェックする。ポインタが NULL なら、マクロがあるその関数あるいはメソッドは指定した値を返す。
構文
CheckPointer( p, ret );
パラメータ
- p
- チェックするポインタ。
- ret
- p が NULL のとき、この関数あるいはメソッドが返す値。
例
HRESULT MyFunction(VOID *pSomeParameter) { CheckPointer(pSomeParameter, E_INVALIDARG) // 関数の残り (省略)。 }
呼び出しプロセスがメモリ ブロックへの読み込みアクセスを持っている事を検証する。持っていない場合、このマクロは DbgBreak マクロを呼び出す。
構文
ValidateReadPtr( const void *p, UINT cb );
パラメータ
- p
- メモリ ブロックへのポインタ。
- cb
- メモリ ブロックのサイズ、バイト単位。
注意
DirectShow 基底クラス ヘッダー ファイルがインクルードされたとき、DEBUG あるいは VFWROBUST が定義されるまで、このマクロは無視される。このマクロはパフォーマンスに大きな影響を与える。
呼び出しプロセスがメモリ ブロックへの読み込みと書き込みのアクセスを持っている事を検証する。持っていない場合、このマクロは DbgBreak を呼び出す。
構文
ValidateReadWritePtr( const void *p, UINT cb );
パラメータ
- p
- メモリ ブロックへのポインタ。
- cb
- メモリ ブロックのサイズ、バイト単位。
注意
DirectShow 基底クラス ヘッダー ファイルがインクルードされたとき、DEBUG あるいは VFWROBUST が定義されるまで、このマクロは無視される。このマクロはパフォーマンスに大きな影響を与える。
呼び出しプロセスが文字列への読み込みアクセスを持っている事を検証する。 持っていない場合、このマクロは DbgBreak を呼び出す。
構文
ValidateStringPtr( LPCTSTR p );
パラメータ
- p
- NULL で終わる TCHAR 文字列へのポインタ。
注意
DirectShow 基底クラス ヘッダー ファイルがインクルードされたとき、DEBUG あるいは VFWROBUST が定義されるまで、このマクロは無視される。このマクロはパフォーマンスに大きな影響を与える。
呼び出しプロセスが ANSI 文字列への読み込みアクセスを持っている事を検証する。持っていない場合、このマクロは DbgBreak を呼び出す。
構文
ValidateStringPtrA( LPCSTR p );
パラメータ
- p
- NULL で終わる ANSI 文字列へのポインタ。
注意
DirectShow 基底クラス ヘッダー ファイルがインクルードされたとき、DEBUG あるいは VFWROBUST が定義されるまで、このマクロは無視される
呼び出しプロセスがワイド キャラクタ文字列への読み込みアクセスを持っている事を検証する。持っていない場合、このマクロは DbgBreak を呼び出す。
構文
ValidateStringPtrW( LPCWSTR p );
パラメータ
- p
- NULL 出終わるワイド キャラクタ文字列へのポインタ。
注意
DirectShow 基底クラス ヘッダー ファイルがインクルードされたとき、DEBUG あるいは VFWROBUST が定義されるまで、このマクロは無視される。このマクロはパフォーマンスに大きな影響を与える。
呼び出しプロセスがメモリ ブロックへの書き込みアクセスを持っている事を検証する。 持っていない場合、このマクロは DbgBreak を呼び出す。
構文
ValidateWritePtr( const void *p, UINT cb );
パラメータ
- p
- メモリ ブロックへのポインタ。
- cb
- メモリ ブロックのサイズ、バイト単位。
注意
DirectShow 基底クラス ヘッダー ファイルがインクルードされたとき、DEBUG あるいは VFWROBUST が定義されるまで、このマクロは無視される。このマクロはパフォーマンスに大きな影響を与える。