Lish : DoDragDrop
D&Dを作ろうとして、IDataObjectとIDropSourceを作って、DoDragDropを呼んだら、意味の分からないエラーで失敗して困っていた。
なんか、"CoInitialize has not been called"みたいな。
しかし、CoInitializeとか呼んでもエラーが解消しない。こんなテストで確認できる。
procedure TForm1.Button1Click(Sender: TObject); var R: Integer; Res: HRESULT; begin CoInitialize(nil); Res := DoDragDrop(nil, nil, 0, R); ShowMessage(IntToStr(Res)); CoUninitialize(); end;
結局、CoInitializeではなく、OleInitializeをしなければならないということに気づく。