は、呼び出し側が必要にIShellBrowser*により取得した非正規滞在WM_GETISHELLBROWSER(WM_USER+7)メッセージ?
-
19-09-2019 - |
質問
数も指摘されているところに存在し、非正規滞在メッセージを取得しまIShellBrowserスポインターからの共通ダイアログHWNDのファイルをオープン保存ダイアログ.
が相反する情報なし情報)かどうかがポインタAddRefい場合、または原住返され、Release()を呼び出す必要があるのですか?
解決
No.を感じるかもしれませんが、下記のリンクに有: ルールのコンポーネントのオブジェクトモデル .
抜粋:
参考カウンティングルール
ルール1:AddRefなされることになります。 毎新しいコピーのインターフェース ポインタ、リリース時に毎回呼び出され 破壊のインターフェースポインタ の場合を除き、その後のルール 明示的に許可します。
以下のルールの呼出共通 nonexceptionsるルール1.
- ルール1a:In-outパラメータます。呼び出し側になAddRef実際のパラメータとなりますので、発表された相手先の場合の値が格納されています。◆
- ルール1b:取得にグローバル変数となります。地元のコピーインタフェースのポインタから取得し、既存のコピーのポインタをグローバル変数を必ず単独での参考計数、という機能を破壊することがあるコピーのグローバルにコピー。
- ルール1c:新しいポインタを合成の"てしまいました。" る機能を合成インターフェースのポインタ利用の特別な知識はから取得する方法その他の源は、やらなければ初期AddRefの新しく合成されたポインタです。重要な例のようなルーチンを含むインスタンス作成ルーチン、実装のIUnknown::QueryInterfaceいます。
- 原則1d:帰国のコピーは、内蔵されたポインタです。後のポインタが返され、相手先がないのか、その寿命に関連付けることにあるが内蔵されたコピーのポインタです。このように、相手先呼び名を付けなければなAddRefのポインタのコピーを返します。
ルール2:特別な知識を 作品"と呼ぶに相応しいコードを 関係の始まりと の終わりの寿命は よりコピーのインターフェースのポインタ きAddRef/リペアする 省略する。
- からCOMのお客様の視点で、参照カウントをはずしたインタフェースコンセプト。お客様にはそのオブジェクトの参照カウントのためのすべてのインタフェース
- 戻り値のAddRefリン依拠されるべきではありません、デバッグの場合にだけ使用します。
- ポインタの安定詳細を見ることのOLEヘルプファイルの下で"参照カウントルール","安定化は、このポインタを保持で有効になります。"
に優れた"オブジェクト管理 寿命にOLE"の技術によ ダグラスHodges、第3章の 内OLE、第2版、Kraig Brockschmidt(MSDNは、図書室、図書) 詳細情報 参考カウント.
所属していません StackOverflow