IStorage::MoveElementTo 메서드(objidl.h)
MoveElementTo 메서드는 하위 저장소 또는 스트림을 이 스토리지 개체에서 다른 스토리지 개체로 복사하거나 이동합니다.
구문
HRESULT MoveElementTo(
[in] const OLECHAR *pwcsName,
[in] IStorage *pstgDest,
[in] const OLECHAR *pwcsNewName,
[in] DWORD grfFlags
);
매개 변수
[in] pwcsName
이동하거나 복사할 이 스토리지 개체의 요소 이름을 포함하는 와이드 문자 null로 끝나는 유니코드 문자열에 대한 포인터입니다.
[in] pstgDest
대상 스토리지 개체에 대한 IStorage 포인터입니다.
[in] pwcsNewName
새 스토리지 개체의 요소에 대한 새 이름을 포함하는 와이드 문자 null로 끝나는 유니코드 문자열에 대한 포인터입니다.
[in] grfFlags
작업이 이동(STGMOVE_MOVE) 또는 복사본(STGMOVE_COPY)이어야 하는지 여부를 지정합니다. STGMOVE 열거형을 참조하세요.
반환 값
이 메서드는 이러한 값 중 하나를 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
S_OK | 스토리지 개체를 성공적으로 복사하거나 이동했습니다. |
E_PENDING | 비동기 스토리지만 해당: 요소의 데이터의 일부 또는 전체를 현재 사용할 수 없습니다. |
STG_E_ACCESSDENIED | 대상 스토리지 개체는 원본 스토리지 개체의 자식입니다. 또는 대상 개체 및 요소 이름은 원본 개체 및 요소 이름과 동일합니다. 즉, 요소 자체를 이동할 수 없습니다. |
STG_E_FILENOTFOUND | 지정된 이름의 요소가 없습니다. |
STG_E_FILEALREADYEXISTS | 지정된 파일이 이미 있습니다. |
STG_E_INSUFFICIENTMEMORY | 메모리 부족으로 인해 복사 또는 이동이 완료되지 않았습니다. |
STG_E_INVALIDFLAG | grfFlags 매개 변수의 값이 잘못되었습니다. |
STG_E_INVALIDNAME | pwcsName에 유효한 값이 아닙니다. |
STG_E_INVALIDPOINTER | 스토리지 개체에 대해 지정된 포인터가 잘못되었습니다. |
STG_E_INVALIDPARAMETER | 매개 변수 중 하나가 잘못되었습니다. |
STG_E_REVERTED | 스토리지 개체가 트랜잭션 트리에서 위의 되돌리기 작업에 의해 무효화되었습니다. |
STG_E_TOOMANYOPENFILES | 열려 있는 파일이 너무 많기 때문에 복사 또는 이동이 완료되지 않았습니다. |
설명
IStorage::MoveElementTo 메서드는 일반적으로 표시된 요소에서 IStorage::CopyTo 메서드를 호출한 다음 원본 요소를 제거하는 것과 동일합니다. 이 경우 MoveElementTo 메서드는 대상 스토리지 개체의 공개적으로 사용 가능한 함수만 사용하여 이동을 수행합니다.
원본 및 대상 스토리지 개체에 서로의 구현에 대한 특별한 지식이 있는 경우(예: 동일한 구현의 다른 인스턴스일 수 있음) 이 메서드를 보다 효율적으로 구현할 수 있습니다.
이 메서드를 호출하기 전에 이동할 요소를 닫아야 하며 대상 스토리지가 열려 있어야 합니다. 또한 대상 개체와 요소는 이동 원본과 동일한 스토리지 개체/요소 이름이 될 수 없습니다. 즉, 요소 자체를 이동할 수 없습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | objidl.h |
라이브러리 | Uuid.lib |
DLL | Ole32.dll |