Q&A

  • [급질문]SHGetFileInfo 함수 아시는분들
SHGetFileInfo() 함수를 이용하면 현재 시스템에 등록된 아이콘리스트값을 가져오는걸로 아는데 특정파일의 시스템아이콘값을 가지고 올려면 어떻게 해야하나요?

예를들어, .pas파일의 시스템아이콘 핸들값을 가지고 올려고합니다.

고수님들의 답변부탁.

1  COMMENTS
  • Profile
    최용일 2001.12.18 18:28
    안녕하세요. 최용일입니다.



    폼에다가 TImageList하나 놔두시고 아래와 같이 하세요...



    var

    FileInfo: TSHFileInfo;

    HSystemImageList: HImageList;

    begin

    ImageList.ShareImages := True; // ImageList = TImageList

    HSystemImageList := SHGetFileInfo('', 0, FileInfo, SizeOf(FileInfo),

    SHGFI_SYSICONINDEX or SHGFI_SMALLICON);

    ImageList.Width := GetSystemMetrics(SM_CXSMICON);

    ImageList.Height := GetSystemMetrics(SM_CYSMICON);

    ImageList.Handle := HSystemImageList;



    FileName := 'c:mysourcetest.pas'; // 존재하는 파일명

    Flags := SHGFI_SYSICONINDEX;

    SHGetFileInfo(), 0, FileInfo, SizeOf(FileInfo), Flags);



    ShowMessage('아이콘핸들은 ' + IntToStr(FileInfo.iIcon) + '입니다.');

    end;



    파일이름은 디스크상에 반드시 존재해야 합니다...



    ^^ 항상 즐코하세요...



    빙구 wrote:

    > SHGetFileInfo() 함수를 이용하면 현재 시스템에 등록된 아이콘리스트값을 가져오는걸로 아는데 특정파일의 시스템아이콘값을 가지고 올려면 어떻게 해야하나요?

    > 예를들어, .pas파일의 시스템아이콘 핸들값을 가지고 올려고합니다.

    > 고수님들의 답변부탁.