소스코드리뷰(XIX) 파일경로로부터 PIDL을 구해보자
[목차(도우미)]
대상: 마이크로소프트 윈도 OS
데스크탑의 PIDL(Pointer to an IDentifier List)값은 0이다. 이런 값은 전용 API도 있다. PIDL을 알면 경로를 알수 있는데 GetPathFromIDList 함수를 이용하면 된다. SHBrowseForFolder 의 결과값으로 경로를 구할 경우 등에 사용하면 된다.
역으로 경로로부터 PIDL 값을 구할 필요가 생기기도 하는데 이는 어떻게 할까?
이름이 역으로 존재하면 좋았겠지만 윈도 설계자들은 이름을 그렇게 짓지 않았다. 즉 GetIDListFromPath 이란 함수는 윈도 API에 들어있지 않다.
SHParseDisplayName 이란 API를 이용하면 파일경로로부터 PIDL 을 얻을 수 있다.
참고로 IShellFolder 관련 메소드함수에도 ParseDisplayName이란 메소드가 존재하지만 유니코드 변환 등에 의도대로 변환되지 않는 경우가 있다. SHParseDisplayName은 유니코드를 의식하지 않아도 PIDL을 구해준다.
MSDN정보(영문)
http://msdn.microsoft.com/en-us/library/bb762236(v=vs.85).aspx
(선인장: 식물원에서 볼때마다 언제 크나 싶어도 꾸준히 선인장이 자라고 있다. )
'연구개발 이야기' 카테고리의 다른 글
소스코드리뷰(XXI) 파일검색용 컴포넌트를 만들자 (0) | 2010.09.18 |
---|---|
소스코드리뷰(XX) 복수항목의 입력방법 - 리스트뷰 (0) | 2010.09.18 |
소스코드리뷰(XVIII) 이미지리스트(ImageList)의 사용과 아이콘 (0) | 2010.09.05 |
(일본) 정보처리추진기구 사이트에 관하여 (1) | 2010.08.16 |