AfxResolveShortcut

投稿日 by Iwao

個人的に作成したダイアログベースのツールで,lnk をドロップした時に開けない.
S_asZ に lnk をドロップ
これに対応するには,lnk から doc を求めることで対応できる.
同じ様に作成した SDI exe の場合は,うまく開ける?
デバッガで追いかけると,CDocManager::OpenDocumentFile で AfxResolveShortcut を呼んでいる.
CDocManager::OpenDocumentFile で AfxResolveShortcut
但し,MFC のバージョンにより? ::CoInitialize が呼び出されていないと 1 回だけ.
CFileDialog などを呼出すと ::CoInitialize にあたるものが呼び出されるのでその後はうまくいく.
https://mish.myds.me/wordpress/dev/2021/03/31/win10-21h1-mdi-exe-error/


次の様な関数を用意して,ドロップされたファイルが lnk の時に対応.

tstring	LNK_Get_path	(HWND hwnd,LPCTSTR lnk_path)
{
	tstring	doc_path = lnk_path ;
	if (::Path_GetExtLow(lnk_path) == _T("lnk")) {
	      	doc_path = ::Get_path_lnk(hwnd,lnk_path) ;
		}
	return	doc_path ;
	}
この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です