다음을 통해 공유


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를 호출합니다.

상속 계층 구조

CObject

CShellManager

요구 사항

헤더: 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입니다.

설명

이 메서드는 pidl1pidl2를 모두 포함할 수 있을 만큼 큰 새 ITEMIDLIST를 만듭니다. 그런 다음 pidl1pidl2를 새 목록에 복사합니다.

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 정의 오류 값입니다.

참고 항목

계층 구조 차트
클래스