windows-nt/Source/XPSP1/NT/base/fs/hsm/job/hsmactn.cpp
2020-09-26 16:20:57 +08:00

1524 lines
22 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++
© 1998 Seagate Software, Inc. All rights reserved.
Module Name:
hsmactn.cpp
Abstract:
This component represents the actions that can be performed by a policy.
Author:
Chuck Bardeen [cbardeen] 29-Oct-1996
Revision History:
--*/
#include "stdafx.h"
#include "stdio.h"
#include "wsb.h"
#include "job.h"
#include "hsmactn.h"
#define WSB_TRACE_IS WSB_TRACE_BIT_JOB
HRESULT
CHsmAction::GetName(
OUT OLECHAR** pName,
IN ULONG bufferSize
)
/*++
Implements:
IHsmAction::GetName().
--*/
{
HRESULT hr = S_OK;
CWsbStringPtr tmpString;
try {
WsbAssert(0 != pName, E_POINTER);
WsbAffirmHr(tmpString.LoadFromRsc(_Module.m_hInst, m_nameId));
WsbAffirmHr(tmpString.CopyTo(pName, bufferSize));
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmAction::GetSizeMax(
OUT ULARGE_INTEGER* pSize
)
/*++
Implements:
IPersistStream::GetSizeMax().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmAction::GetSizeMax"), OLESTR(""));
try {
WsbAssert(0 != pSize, E_POINTER);
pSize->QuadPart = WsbPersistSizeOf(ULONG);
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmAction::GetSizeMax"), OLESTR("hr = <%ls>, Size = <%ls>"), WsbHrAsString(hr), WsbPtrToUliAsString(pSize));
return(hr);
}
HRESULT
CHsmAction::Load(
IN IStream* pStream
)
/*++
Implements:
IPersistStream::Load().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmAction::Load"), OLESTR(""));
try {
WsbAssert(0 != pStream, E_POINTER);
WsbAffirmHr(WsbLoadFromStream(pStream, &m_nameId));
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmAction::Load"), OLESTR("hr = <%ls>, nameId = <%lu>"), WsbHrAsString(hr), m_nameId);
return(hr);
}
HRESULT
CHsmAction::Save(
IN IStream* pStream,
IN BOOL clearDirty
)
/*++
Implements:
IPersistStream::Save().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmAction::Save"), OLESTR("clearDirty = <%ls>"), WsbBoolAsString(clearDirty));
try {
WsbAssert(0 != pStream, E_POINTER);
WsbAffirmHr(WsbSaveToStream(pStream, m_nameId));
// If we got it saved and we were asked to clear the dirty bit, then
// do so now.
if (clearDirty) {
m_isDirty = FALSE;
}
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmAction::Save"), OLESTR("hr = <%ls>"), WsbHrAsString(hr));
return(hr);
}
HRESULT
CHsmAction::Test(
USHORT* passed,
USHORT* failed
)
/*++
Implements:
IWsbTestable::Test().
--*/
{
HRESULT hr = S_OK;
try {
WsbAssert(0 != passed, E_POINTER);
WsbAssert(0 != failed, E_POINTER);
*passed = 0;
*failed = 0;
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmDirectedAction::FinalConstruct(
void
)
/*++
Implements:
CComObjectRoot::FinalConstruct().
--*/
{
HRESULT hr = S_OK;
try {
WsbAffirmHr(CWsbObject::FinalConstruct());
m_storagePoolId = GUID_NULL;
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmDirectedAction::GetStoragePoolId(
OUT GUID* pId
)
/*++
Implements:
IHsmDirectedAction::GetStoragePoolId().
--*/
{
HRESULT hr = S_OK;
try {
WsbAssert(0 != pId, E_POINTER);
*pId = m_storagePoolId;
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmDirectedAction::GetSizeMax(
OUT ULARGE_INTEGER* pSize
)
/*++
Implements:
IPersistStream::GetSizeMax().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmDirectedAction::GetSizeMax"), OLESTR(""));
try {
WsbAssert(0 != pSize, E_POINTER);
pSize->QuadPart = WsbPersistSizeOf(ULONG) + WsbPersistSizeOf(GUID);
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmDirectedAction::GetSizeMax"), OLESTR("hr = <%ls>, Size = <%ls>"), WsbHrAsString(hr), WsbPtrToUliAsString(pSize));
return(hr);
}
HRESULT
CHsmDirectedAction::Load(
IN IStream* pStream
)
/*++
Implements:
IPersistStream::Load().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmDirectedAction::Load"), OLESTR(""));
try {
WsbAssert(0 != pStream, E_POINTER);
WsbAffirmHr(WsbLoadFromStream(pStream, &m_nameId));
WsbAffirmHr(WsbLoadFromStream(pStream, &m_storagePoolId));
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmDirectedAction::Load"), OLESTR("hr = <%ls>, nameId = <%lu>, storagePoolId = <%ls>"), WsbHrAsString(hr), m_nameId, WsbGuidAsString(m_storagePoolId));
return(hr);
}
HRESULT
CHsmDirectedAction::Save(
IN IStream* pStream,
IN BOOL clearDirty
)
/*++
Implements:
IPersistStream::Save().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmDirectedAction::Save"), OLESTR("clearDirty = <%ls>"), WsbBoolAsString(clearDirty));
try {
WsbAssert(0 != pStream, E_POINTER);
WsbAffirmHr(WsbSaveToStream(pStream, m_nameId));
WsbAffirmHr(WsbSaveToStream(pStream, m_storagePoolId));
// If we got it saved and we were asked to clear the dirty bit, then
// do so now.
if (clearDirty) {
m_isDirty = FALSE;
}
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmDirectedAction::Save"), OLESTR("hr = <%ls>"), WsbHrAsString(hr));
return(hr);
}
HRESULT
CHsmDirectedAction::SetStoragePoolId(
IN GUID id
)
/*++
Implements:
IHsmDirectedAction::SetStoragePoolId().
--*/
{
HRESULT hr = S_OK;
try {
m_storagePoolId = id;
m_isDirty = TRUE;
} WsbCatch(hr);
return(S_OK);
}
HRESULT
CHsmRelocateAction::ExpandPlaceholders(
void
)
/*++
Implements:
IHsmRelocateAction::ExpandPlaceholders().
--*/
{
return(m_expandPlaceholders ? S_OK : S_FALSE);
}
HRESULT
CHsmRelocateAction::FinalConstruct(
void
)
/*++
Implements:
CComObjectRoot::FinalConstruct().
--*/
{
HRESULT hr = S_OK;
try {
WsbAffirmHr(CWsbObject::FinalConstruct());
m_retainHierarchy = FALSE;;
m_expandPlaceholders = FALSE;;
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmRelocateAction::GetDestination(
OUT OLECHAR** pDest,
IN ULONG bufferSize
)
/*++
Implements:
IHsmRelocateAction::GetDestination().
--*/
{
HRESULT hr = S_OK;
try {
WsbAssert(0 != pDest, E_POINTER);
WsbAffirmHr(m_dest.CopyTo(pDest, bufferSize));
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmRelocateAction::GetSizeMax(
OUT ULARGE_INTEGER* pSize
)
/*++
Implements:
IPersistStream::GetSizeMax().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmRelocateAction::GetSizeMax"), OLESTR(""));
try {
WsbAssert(0 != pSize, E_POINTER);
pSize->QuadPart = WsbPersistSizeOf(ULONG) + WsbPersistSizeOf(BOOL) + WsbPersistSizeOf(BOOL) + WsbPersistSize((wcslen(m_dest) + 1) * sizeof(OLECHAR));
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmRelocateAction::GetSizeMax"), OLESTR("hr = <%ls>, Size = <%ls>"), WsbHrAsString(hr), WsbPtrToUliAsString(pSize));
return(hr);
}
HRESULT
CHsmRelocateAction::Load(
IN IStream* pStream
)
/*++
Implements:
IPersistStream::Load().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmRelocateAction::Load"), OLESTR(""));
try {
WsbAssert(0 != pStream, E_POINTER);
WsbAffirmHr(WsbLoadFromStream(pStream, &m_nameId));
WsbAffirmHr(WsbLoadFromStream(pStream, &m_expandPlaceholders));
WsbAffirmHr(WsbLoadFromStream(pStream, &m_retainHierarchy));
WsbAffirmHr(WsbLoadFromStream(pStream, &m_dest, 0));
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmRelocateAction::Load"), OLESTR("hr = <%ls>, expandPlaceholders = <%ls>, retainHierarchy = <%ls>, destination = <%ls>"), WsbHrAsString(hr), m_nameId, WsbBoolAsString(m_expandPlaceholders), WsbBoolAsString(m_retainHierarchy), m_dest);
return(hr);
}
HRESULT
CHsmRelocateAction::RetainHierarchy(
void
)
/*++
Implements:
IHsmRelocateAction::RetainHierarchy().
--*/
{
return(m_retainHierarchy ? S_OK : S_FALSE);
}
HRESULT
CHsmRelocateAction::Save(
IN IStream* pStream,
IN BOOL clearDirty
)
/*++
Implements:
IPersistStream::Save().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmRelocateAction::Save"), OLESTR("clearDirty = <%ls>"), WsbBoolAsString(clearDirty));
try {
WsbAssert(0 != pStream, E_POINTER);
WsbAffirmHr(WsbSaveToStream(pStream, m_nameId));
WsbAffirmHr(WsbSaveToStream(pStream, m_expandPlaceholders));
WsbAffirmHr(WsbSaveToStream(pStream, m_retainHierarchy));
WsbAffirmHr(WsbSaveToStream(pStream, m_dest));
// If we got it saved and we were asked to clear the dirty bit, then
// do so now.
if (clearDirty) {
m_isDirty = FALSE;
}
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmRelocateAction::Save"), OLESTR("hr = <%ls>"), WsbHrAsString(hr));
return(hr);
}
HRESULT
CHsmRelocateAction::SetDestination(
IN OLECHAR* dest
)
/*++
Implements:
IHsmRelocateAction::SetDestination().
--*/
{
HRESULT hr = S_OK;
try {
m_dest = dest;
m_isDirty = TRUE;
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmRelocateAction::SetExpandPlaceholders(
IN BOOL expandPlaceholders
)
/*++
Implements:
IHsmRelocateAction::SetExpandPlaceholders().
--*/
{
HRESULT hr = S_OK;
try {
m_expandPlaceholders = expandPlaceholders;
m_isDirty = TRUE;
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmRelocateAction::SetRetainHierarchy(
IN BOOL retainHierarchy
)
/*++
Implements:
IHsmRelocateAction::SetRetainHierarchy().
--*/
{
HRESULT hr = S_OK;
try {
m_retainHierarchy = retainHierarchy;
m_isDirty = TRUE;
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionDelete::Do(
IFsaScanItem* pScanItem
)
/*++
Implements:
IHsmAction::Do().
--*/
{
HRESULT hr = S_OK;
try {
WsbAssert(0 != pScanItem, E_POINTER);
WsbAffirmHr(pScanItem->Delete());
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionDelete::FinalConstruct(
void
)
/*++
Implements:
CComObjectRoot::FinalConstruct().
--*/
{
HRESULT hr = S_OK;
try {
WsbAffirmHr(CWsbObject::FinalConstruct());
m_nameId = IDS_HSMACTIONDELETE_ID;
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionDelete::GetClassID(
OUT CLSID* pClsid
)
/*++
Implements:
IPersist::GetClassID().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmActionDelete::GetClassID"), OLESTR(""));
try {
WsbAssert(0 != pClsid, E_POINTER);
*pClsid = CLSID_CHsmActionDelete;
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmActionDelete::GetClassID"), OLESTR("hr = <%ls>, CLSID = <%ls>"), WsbHrAsString(hr), WsbGuidAsString(*pClsid));
return(hr);
}
HRESULT
CHsmActionRecall::Do(
IFsaScanItem* pScanItem
)
/*++
Implements:
IHsmAction::Do().
--*/
{
HRESULT hr = S_OK;
LONGLONG offset = 0;
LONGLONG size = 0;
FSA_PLACEHOLDER placeholder;
try {
WsbAssert(0 != pScanItem, E_POINTER);
// Iterate overall the reparsed areas.
for (hr = pScanItem->FindFirstPlaceholder(&offset, &size, &placeholder);
SUCCEEDED(hr);
hr = pScanItem->FindNextPlaceholder(&offset, &size, &placeholder)) {
WsbAffirmHr(pScanItem->Recall(offset, size, FALSE));
}
if (WSB_E_NOTFOUND == hr) {
hr = S_OK;
}
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionRecall::FinalConstruct(
void
)
/*++
Implements:
CComObjectRoot::FinalConstruct().
--*/
{
HRESULT hr = S_OK;
try {
WsbAffirmHr(CWsbObject::FinalConstruct());
m_nameId = IDS_HSMACTIONRECALL_ID;
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionRecall::GetClassID(
OUT CLSID* pClsid
)
/*++
Implements:
IPersist::GetClassID().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmActionRecall::GetClassID"), OLESTR(""));
try {
WsbAssert(0 != pClsid, E_POINTER);
*pClsid = CLSID_CHsmActionRecall;
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmActionRecall::GetClassID"), OLESTR("hr = <%ls>, CLSID = <%ls>"), WsbHrAsString(hr), WsbGuidAsString(*pClsid));
return(hr);
}
HRESULT
CHsmActionRecycle::Do(
IFsaScanItem* pScanItem
)
/*++
Implements:
IHsmAction::Do().
--*/
{
HRESULT hr = S_OK;
try {
WsbAssert(0 != pScanItem, E_POINTER);
WsbAffirmHr(pScanItem->Recycle());
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionRecycle::FinalConstruct(
void
)
/*++
Implements:
CComObjectRoot::FinalConstruct().
--*/
{
HRESULT hr = S_OK;
try {
WsbAffirmHr(CWsbObject::FinalConstruct());
m_nameId = IDS_HSMACTIONRECYCLE_ID;
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionRecycle::GetClassID(
OUT CLSID* pClsid
)
/*++
Implements:
IPersist::GetClassID().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmActionRecycle::GetClassID"), OLESTR(""));
try {
WsbAssert(0 != pClsid, E_POINTER);
*pClsid = CLSID_CHsmActionRecycle;
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmActionRecycle::GetClassID"), OLESTR("hr = <%ls>, CLSID = <%ls>"), WsbHrAsString(hr), WsbGuidAsString(*pClsid));
return(hr);
}
HRESULT
CHsmActionTruncate::Do(
IFsaScanItem* pScanItem
)
/*++
Implements:
IHsmAction::Do().
--*/
{
HRESULT hr = S_OK;
LONGLONG size;
try {
WsbAssert(0 != pScanItem, E_POINTER);
WsbAffirmHr(pScanItem->GetLogicalSize(&size));
WsbAffirmHr(pScanItem->Truncate(0, size));
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionTruncate::FinalConstruct(
void
)
/*++
Implements:
CComObjectRoot::FinalConstruct().
--*/
{
HRESULT hr = S_OK;
try {
WsbAffirmHr(CWsbObject::FinalConstruct());
m_nameId = IDS_HSMACTIONTRUNCATE_ID;
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionTruncate::GetClassID(
OUT CLSID* pClsid
)
/*++
Implements:
IPersist::GetClassID().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmActionTruncate::GetClassID"), OLESTR(""));
try {
WsbAssert(0 != pClsid, E_POINTER);
*pClsid = CLSID_CHsmActionTruncate;
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmActionTruncate::GetClassID"), OLESTR("hr = <%ls>, CLSID = <%ls>"), WsbHrAsString(hr), WsbGuidAsString(*pClsid));
return(hr);
}
HRESULT
CHsmActionUnmanage::Do(
IFsaScanItem* pScanItem
)
/*++
Implements:
IHsmAction::Do().
--*/
{
HRESULT hr = S_OK;
LONGLONG offset;
LONGLONG size;
FSA_PLACEHOLDER placeholder;
try {
WsbAssert(0 != pScanItem, E_POINTER);
// Iterate overall the reparsed areas.
for (hr = pScanItem->FindFirstPlaceholder(&offset, &size, &placeholder);
SUCCEEDED(hr);
hr = pScanItem->FindNextPlaceholder(&offset, &size, &placeholder)) {
WsbAffirmHr(pScanItem->Unmanage(offset, size));
}
if (WSB_E_NOTFOUND == hr) {
hr = S_OK;
}
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionUnmanage::FinalConstruct(
void
)
/*++
Implements:
CComObjectRoot::FinalConstruct().
--*/
{
HRESULT hr = S_OK;
try {
WsbAffirmHr(CWsbObject::FinalConstruct());
m_nameId = IDS_HSMACTIONUNMANAGE_ID;
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionUnmanage::GetClassID(
OUT CLSID* pClsid
)
/*++
Implements:
IPersist::GetClassID().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmActionUnmanage::GetClassID"), OLESTR(""));
try {
WsbAssert(0 != pClsid, E_POINTER);
*pClsid = CLSID_CHsmActionUnmanage;
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmActionUnmanage::GetClassID"), OLESTR("hr = <%ls>, CLSID = <%ls>"), WsbHrAsString(hr), WsbGuidAsString(*pClsid));
return(hr);
}
HRESULT
CHsmActionValidate::Do(
IFsaScanItem* pScanItem
)
/*++
Implements:
IHsmAction::Do().
--*/
{
HRESULT hr = S_OK;
LONGLONG offset;
LONGLONG size;
FSA_PLACEHOLDER placeholder;
try {
WsbAssert(0 != pScanItem, E_POINTER);
// Iterate overall the reparsed areas.
for (hr = pScanItem->FindFirstPlaceholder(&offset, &size, &placeholder);
SUCCEEDED(hr);
hr = pScanItem->FindNextPlaceholder(&offset, &size, &placeholder)) {
WsbAffirmHr(pScanItem->Validate(offset, size));
}
if (WSB_E_NOTFOUND == hr) {
hr = S_OK;
}
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionValidate::FinalConstruct(
void
)
/*++
Implements:
CComObjectRoot::FinalConstruct().
--*/
{
HRESULT hr = S_OK;
try {
WsbAffirmHr(CWsbObject::FinalConstruct());
m_nameId = IDS_HSMACTIONVALIDATE_ID;
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionValidate::GetClassID(
OUT CLSID* pClsid
)
/*++
Implements:
IPersist::GetClassID().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmActionValidate::GetClassID"), OLESTR(""));
try {
WsbAssert(0 != pClsid, E_POINTER);
*pClsid = CLSID_CHsmActionValidate;
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmActionValidate::GetClassID"), OLESTR("hr = <%ls>, CLSID = <%ls>"), WsbHrAsString(hr), WsbGuidAsString(*pClsid));
return(hr);
}
HRESULT
CHsmActionManage::Do(
IFsaScanItem* pScanItem
)
/*++
Implements:
IHsmAction::Do().
--*/
{
HRESULT hr = S_OK;
LONGLONG size;
WsbTraceIn(OLESTR("CHsmActionManage::Do"), OLESTR(""));
try {
WsbAssert(0 != pScanItem, E_POINTER);
WsbAffirmHr(pScanItem->GetLogicalSize(&size));
WsbAffirmHr(pScanItem->Manage(0, size, m_storagePoolId, FALSE));
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmActionManage::Do"), OLESTR("hr = <%ls>"), WsbHrAsString(hr));
return(hr);
}
HRESULT
CHsmActionManage::FinalConstruct(
void
)
/*++
Implements:
CComObjectRoot::FinalConstruct().
--*/
{
HRESULT hr = S_OK;
try {
WsbAffirmHr(CHsmDirectedAction::FinalConstruct());
m_nameId = IDS_HSMACTIONMANAGE_ID;
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionManage::GetClassID(
OUT CLSID* pClsid
)
/*++
Implements:
IPersist::GetClassID().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmActionManage::GetClassID"), OLESTR(""));
try {
WsbAssert(0 != pClsid, E_POINTER);
*pClsid = CLSID_CHsmActionManage;
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmActionManage::GetClassID"), OLESTR("hr = <%ls>, CLSID = <%ls>"), WsbHrAsString(hr), WsbGuidAsString(*pClsid));
return(hr);
}
HRESULT
CHsmActionMigrate::Do(
IFsaScanItem* pScanItem
)
/*++
Implements:
IHsmAction::Do().
--*/
{
HRESULT hr = S_OK;
LONGLONG size;
try {
WsbAssert(0 != pScanItem, E_POINTER);
WsbAffirmHr(pScanItem->GetLogicalSize(&size));
WsbAffirmHr(pScanItem->Manage(0, size, m_storagePoolId, TRUE));
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionMigrate::FinalConstruct(
void
)
/*++
Implements:
CComObjectRoot::FinalConstruct().
--*/
{
HRESULT hr = S_OK;
try {
WsbAffirmHr(CHsmDirectedAction::FinalConstruct());
m_nameId = IDS_HSMACTIONMIGRATE_ID;
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionMigrate::GetClassID(
OUT CLSID* pClsid
)
/*++
Implements:
IPersist::GetClassID().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmActionMigrate::GetClassID"), OLESTR(""));
try {
WsbAssert(0 != pClsid, E_POINTER);
*pClsid = CLSID_CHsmActionMigrate;
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmActionMigrate::GetClassID"), OLESTR("hr = <%ls>, CLSID = <%ls>"), WsbHrAsString(hr), WsbGuidAsString(*pClsid));
return(hr);
}
HRESULT
CHsmActionCopy::Do(
IFsaScanItem* pScanItem
)
/*++
Implements:
IHsmAction::Do().
--*/
{
HRESULT hr = S_OK;
try {
WsbAssert(0 != pScanItem, E_POINTER);
WsbAffirmHr(pScanItem->Copy(m_dest, m_retainHierarchy, m_expandPlaceholders, TRUE));
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionCopy::FinalConstruct(
void
)
/*++
Implements:
CComObjectRoot::FinalConstruct().
--*/
{
HRESULT hr = S_OK;
try {
WsbAffirmHr(CHsmRelocateAction::FinalConstruct());
m_nameId = IDS_HSMACTIONCOPY_ID;
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionCopy::GetClassID(
OUT CLSID* pClsid
)
/*++
Implements:
IPersist::GetClassID().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmActionCopy::GetClassID"), OLESTR(""));
try {
WsbAssert(0 != pClsid, E_POINTER);
*pClsid = CLSID_CHsmActionCopy;
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmActionCopy::GetClassID"), OLESTR("hr = <%ls>, CLSID = <%ls>"), WsbHrAsString(hr), WsbGuidAsString(*pClsid));
return(hr);
}
HRESULT
CHsmActionMove::Do(
IFsaScanItem* pScanItem
)
/*++
Implements:
IHsmAction::Do().
--*/
{
HRESULT hr = S_OK;
try {
WsbAssert(0 != pScanItem, E_POINTER);
WsbAffirmHr(pScanItem->Move(m_dest, m_retainHierarchy, m_expandPlaceholders, TRUE));
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionMove::FinalConstruct(
void
)
/*++
Implements:
CComObjectRoot::FinalConstruct().
--*/
{
HRESULT hr = S_OK;
try {
WsbAffirmHr(CHsmRelocateAction::FinalConstruct());
m_nameId = IDS_HSMACTIONMOVE_ID;
} WsbCatch(hr);
return(hr);
}
HRESULT
CHsmActionMove::GetClassID(
OUT CLSID* pClsid
)
/*++
Implements:
IPersist::GetClassID().
--*/
{
HRESULT hr = S_OK;
WsbTraceIn(OLESTR("CHsmActionMove::GetClassID"), OLESTR(""));
try {
WsbAssert(0 != pClsid, E_POINTER);
*pClsid = CLSID_CHsmActionMove;
} WsbCatch(hr);
WsbTraceOut(OLESTR("CHsmActionMove::GetClassID"), OLESTR("hr = <%ls>, CLSID = <%ls>"), WsbHrAsString(hr), WsbGuidAsString(*pClsid));
return(hr);
}