CShellManager 클래스
PIDL(식별자 포인터 목록)에 대한 포인터를 사용하여 작업할 수 있는 몇 가지 메서드를 구현합니다.
구문
class CShellManager : public CObject
멤버
공용 생성자
속성 | 설명 |
---|---|
CShellManager::CShellManager | CShellManager 개체를 생성합니다. |
공용 메서드
이름 | 설명 |
---|---|
CShellManager::BrowseForFolder | 사용자가 셸 폴더를 선택할 수 있는 대화 상자를 표시합니다. |
CShellManager::ConcatenateItem | 두 개의 PIDL을 연결합니다. |
CShellManager::CopyItem | 새 PIDL을 만들고 제공된 PIDL을 복사합니다. |
CShellManager::CreateItem | 지정된 크기의 새 PIDL을 만듭니다. |
CShellManager::FreeItem | 제공된 PIDL을 삭제합니다. |
CShellManager::GetItemCount | 제공된 PIDL의 항목 수를 반환합니다. |
CShellManager::GetItemSize | 제공된 PIDL의 크기를 반환합니다. |
CShellManager::GetNextItem | PIDL에서 다음 항목을 반환합니다. |
CShellManager::GetParentItem | 제공된 항목의 부모 항목을 검색합니다. |
CShellManager::ItemFromPath | 제공된 경로로 식별되는 항목의 PIDL을 검색합니다. |
설명
클래스의 CShellManager
메서드는 모두 PIDL을 처리합니다. PIDL은 셸 개체의 고유 식별자입니다.
개체를 CShellManager
수동으로 만들면 안 됩니다. 애플리케이션의 프레임워크에 의해 자동으로 만들어집니다. 그러나 애플리케이션 초기화 프로세스 중에 CWinAppEx::InitShellManager를 호출해야 합니다. 애플리케이션의 셸 관리자에 대한 포인터를 얻으려면 CWinAppEx::GetShellManager를 호출합니다.
상속 계층 구조
요구 사항
헤더: afxshellmanager.h
CShellManager::BrowseForFolder
사용자가 셸 폴더를 선택할 수 있는 대화 상자를 표시합니다.
BOOL BrowseForFolder(
CString& strOutFolder,
CWnd* pWndParent = NULL,
LPCTSTR lplszInitialFolder = NULL,
LPCTSTR lpszTitle = NULL,
UINT ulFlags = BIF_RETURNONLYFSDIRS,
LPINT piFolderImage = NULL);
매개 변수
strOutFolder
[out] 메서드에서 선택한 폴더의 경로를 저장하는 데 사용하는 문자열입니다.
pWndParent
[in] 부모 창에 대한 포인터입니다.
lplszInitialFolder
[in] 대화 상자가 표시될 때 기본적으로 선택된 폴더가 포함된 문자열입니다.
lpszTitle
[in] 대화 상자의 제목입니다.
ulFlags
[in] 대화 상자의 옵션을 지정하는 플래그입니다. 자세한 설명은 BROWSEINFO를 참조하세요.
piFolderImage
[out] 메서드가 선택한 폴더의 이미지 인덱스를 쓰는 정수 값에 대한 포인터입니다.
Return Value
사용자가 대화 상자에서 폴더를 선택하는 경우 0이 아닌 경우 그렇지 않으면 0입니다.
설명
이 메서드를 호출하면 애플리케이션에서 사용자가 폴더를 선택할 수 있는 대화 상자를 만들고 표시합니다. 메서드는 strOutFolder 매개 변수에 폴더의 경로를 씁니다.
예시
다음 예제에서는 메서드를 사용 하 여 CWinAppEx::GetShellManager
개체에 대 한 참조를 CShellManager
검색 하는 방법 및 메서드를 사용 BrowseForFolder
하는 방법을 보여 줍니다. 이 코드 조각은 탐색기 샘플의 일부입니다.
CString strPath;
// The this pointer points to the CExplorerView class which extends the CView class.
// CMFCShellListCtrl m_wndList
if (m_wndList.GetCurrentFolder(strPath) &&
theApp.GetShellManager()->BrowseForFolder(strPath,
this, strPath, _T("Copy the selected item(s) to the folder:")))
{
MessageBox(CString(_T("The selected path is: ")) + strPath);
}
CShellManager::ConcatenateItem
두 개의 PIDL을 포함하는 새 목록을 만듭니다.
LPITEMIDLIST ConcatenateItem(
LPCITEMIDLIST pidl1,
LPCITEMIDLIST pidl2);
매개 변수
pidl1
[in] 첫 번째 항목입니다.
pidl2
[in] 두 번째 항목입니다.
Return Value
함수가 성공하면 새 항목 목록에 대한 포인터입니다. 그렇지 않으면 NULL입니다.
설명
이 메서드는 pidl1 및 pidl2를 모두 포함할 수 있을 만큼 큰 새 ITEMIDLIST를 만듭니다. 그런 다음 pidl1 및 pidl2를 새 목록에 복사합니다.
CShellManager::CopyItem
항목 목록을 복사합니다.
LPITEMIDLIST CopyItem(LPCITEMIDLIST pidlSource);
매개 변수
pidlSource
[in] 원래 항목 목록입니다.
Return Value
성공하면 새로 만든 항목 목록에 대한 포인터입니다. 그렇지 않으면 NULL입니다.
설명
새로 만든 항목 목록의 크기는 원본 항목 목록과 같습니다.
CShellManager::CreateItem
새 PIDL을 만듭니다.
LPITEMIDLIST CreateItem(UINT cbSize);
매개 변수
cbSize
[in] 항목 목록의 크기입니다.
Return Value
성공한 경우 만든 항목 목록에 대한 포인터입니다. 그렇지 않으면 NULL입니다.
CShellManager::CShellManager
CShellManager
개체를 생성합니다.
CShellManager();
설명
대부분의 경우 직접 만들 CShellManager
필요가 없습니다. 기본적으로 프레임워크는 자동으로 만듭니다. 포인터CShellManager
를 얻으려면 CWinAppEx::GetShellManager를 호출합니다. 수동으로 만드는 CShellManager
경우 CWinAppEx::InitShellManager 메서드를 사용하여 초기화해야 합니다.
CShellManager::FreeItem
항목 목록을 삭제합니다.
void FreeItem(LPITEMIDLIST pidl);
매개 변수
pidl
[in] 삭제할 항목 목록입니다.
CShellManager::GetItemCount
항목 목록의 항목 수를 반환합니다.
UINT GetItemCount(LPCITEMIDLIST pidl);
매개 변수
pidl
[in] 항목 목록에 대한 포인터입니다.
Return Value
항목 목록의 항목 수입니다.
CShellManager::GetItemSize
항목 목록의 크기를 반환합니다.
UINT GetItemSize(LPCITEMIDLIST pidl);
매개 변수
pidl
[in] 항목 목록에 대한 포인터입니다.
Return Value
항목 목록의 크기입니다.
CShellManager::GetNextItem
PIDL(항목 식별자 목록)에 대한 포인터에서 다음 항목을 검색합니다.
LPITEMIDLIST GetNextItem(LPCITEMIDLIST pidl);
매개 변수
pidl
[in] 반복할 항목 목록입니다.
Return Value
목록의 다음 항목에 대한 포인터입니다.
설명
목록에 항목이 더 이상 없으면 이 메서드는 NULL을 반환합니다.
CShellManager::GetParentItem
PIDL(항목 식별자 목록)에 대한 포인터의 부모를 검색합니다.
int GetParentItem(
LPCITEMIDLIST lpidl,
LPITEMIDLIST& lpidlParent);
매개 변수
lpidl
[in] 부모가 검색될 PIDL입니다.
lpidlParent
[out] 메서드가 결과를 저장할 PIDL에 대한 참조입니다.
Return Value
부모 PIDL의 수준입니다.
설명
PIDL 수준은 데스크톱을 기준으로 합니다. 데스크톱 PIDL의 수준은 0인 것으로 간주됩니다.
CShellManager::ItemFromPath
문자열 경로로 식별된 항목에서 PIDL(항목 식별자 목록)에 대한 포인터를 검색합니다.
HRESULT ItemFromPath(
LPCTSTR lpszPath,
LPITEMIDLIST& pidl);
매개 변수
lpszPath
[in] 항목의 경로를 지정하는 문자열입니다.
pidl
[out] PIDL에 대한 참조입니다. 이 메서드는 이 PIDL을 사용하여 반환 값에 대한 포인터를 저장합니다.
Return Value
성공하면 NOERROR를 반환합니다. OLE 정의 오류 값입니다.