Visual C++에서 윈도우 내장 이미지 뷰어 사용하는 방법

메르카토르 지도에 최단경로를 그리는 프로그램을 개발 중 이미지 파일(PNG)을 화면에 간단히 출력하는 기능을 넣기로 했다.

처음엔 그냥 ShellExecute() 함수에서 이미지 파일을 직접 실행시켰는데, PC마다 일관성이 없어 보기 좋지 않았다.
그래서 윈도우 XP에 내장된 이미지 뷰어를 이용해서 이미지 파일을 출력하기로 방향을 수정.

Visual C++에서 이런 식으로 윈도우에 내장된 이미지 뷰어를 사용하려면 아래와 같은 짤막한 코드면 충분하다.


csPNG에 이미지 파일의 full path가 들어있다고 가정함.

CString csParam;
csParam.Format(_T("shimgvw.dll, ImageView_Fullscreen %s"), csPNG);
ShellExecute(NULL, _T("open"), _T("rundll32.exe"), csParam, NULL, SW_SHOW);