◀ANSI版開発トップへ
  • 4299 SUCCEEDEDマクロ使用状況
  • [4299] SUCCEEDEDマクロ使用状況 げんた 2006年03月17日 13:38

    >>data:5101 のSUCCEEDEDマクロの使用状況を調べてみました.

    [etc_uty.cpp] ResolveShortcutLink
    pIShellLink->GetPath()でパスを取得できなかったときS_OK以外の値が返ります.
    ただ,その場合は結果に空文字列が返され,それをその後チェックしているので特に実害はないと思います.

    [CEditWnd.cpp] CEditWnd::OnMouseMove
    IShellFolder::ParseDisplayName()はS_OKでなければエラーを返すので問題なし.


    [CDropTarget.cpp] CDropTarget::Revoke_DropTarget
    RevokeDragDrop() はS_OK以外はエラー値なので問題なし.

    [CDropTarget.cpp] CDataObject::DragDrop
    得られたpdwEffectパラメータを戻り値として返していますが,エラーでない戻り値としてDRAGDROP_S_CANCELとDRAGDROP_S_DROPのケースがあって,pdwEffectはキャンセルされなかった場合のみ設定されるとあります.
    キャンセルの場合に未初期化の不定な値が返される可能性があるように見えますが,実際他のウィンドウへDrag & Dropしてキャンセルされた場合にはpdwEffectに0が設定されるようなので,実際のところこの問題は発生しないのかな?

    DragDropを呼ぶのは1カ所だけで,成功時と失敗時の差は選択範囲をキャンセルするかどうかだけなので動作上の問題となることは無さそうです.