// jobprv.idl : IDL source for Jobs.dll
//

interface IHsmJobPriv;
interface IHsmJobWorkItemPriv;
interface IHsmPhasePriv;
interface IHsmSessionTotalsPriv;
 
// This file will be processed by the MIDL tool to
// produce the type library (Jobs.tlb) and marshalling code.

import "oaidl.idl";
import "jobdef.idl";
import "fsaint.idl";


[
    object,
    uuid(31B6B5CB-0DB0-4286-84EA-8A0F3D25AE00),
    helpstring("IHsmJobPriv Interface"),
    pointer_default(unique)
]
interface IHsmJobPriv : IUnknown
{
    HRESULT AdviseOfSessionState([in] IHsmSession* pSession, [in] IHsmPhase* pPhase, [in, string] OLECHAR* currentPath);
    HRESULT DoNext(void);
}


[
    object,
    uuid(29312E77-7056-4E2F-83CC-FB1489FAD7F6),
    helpstring("IHsmJobWorkItemPriv Interface"),
    pointer_default(unique)
]
interface IHsmJobWorkItemPriv : IUnknown
{
    HRESULT CompareToResourceId([in] GUID id, [out] SHORT* pResult);
    HRESULT CompareToIWorkItem([in] IHsmJobWorkItem* pWorkItem, [out] SHORT* pResult);
    HRESULT EnumPhases([out] IWsbEnum** ppEnum);
    HRESULT EnumTotals([out] IWsbEnum** ppEnum);
    HRESULT GetCookie([out] DWORD* pCookie);
    HRESULT GetCurrentPath([in, out, string] OLECHAR** pString, [in] ULONG bufferSize);
    HRESULT GetFinishTime([out] FILETIME* pTime);
    HRESULT GetPhases([out] IWsbCollection** pPhases);
    HRESULT GetResourceId([out] GUID* pId);
    HRESULT GetSession([out] IHsmSession** ppSession);
    HRESULT GetStartingPath([in, out, string] OLECHAR** pString, [in] ULONG bufferSize);
    HRESULT GetStartTime([out] FILETIME* pTime);
    HRESULT GetState([out] HSM_JOB_STATE* pState);
    HRESULT GetStateAsString([in, out, string] OLECHAR** pName, [in] ULONG bufferSize);
    HRESULT GetSubRunId([out] ULONG* pId);
    HRESULT GetTotals([out] IWsbCollection** pTotals);
    HRESULT Init([in] IHsmJob* pJob);
    HRESULT SetCookie([in] DWORD cookie);
    HRESULT SetCurrentPath([in, string] OLECHAR* string);
    HRESULT SetFinishTime([in] FILETIME time);
    HRESULT SetResourceId([in] GUID id);
    HRESULT SetSession([in] IHsmSession* pSession);
    HRESULT SetStartingPath([in, string] OLECHAR* string);
    HRESULT SetStartTime([in] FILETIME time);
    HRESULT SetState([in] HSM_JOB_STATE state);
    HRESULT SetSubRunId([in] ULONG id);
	HRESULT IsActiveItem(void);
	HRESULT SetActiveItem([in] BOOL bActive);
};


[
    object,
    uuid(35035911-0D1C-11d2-9B0C-00104B9A2869),
    helpstring("IHsmPhasePriv Interface"),
    pointer_default(unique)
]
interface IHsmPhasePriv : IUnknown
{
    HRESULT AddItem([in] IFsaScanItem* pItem, [in] HRESULT itemHr);
    HRESULT Clone([out] IHsmPhasePriv** ppPhasePriv);
    HRESULT CopyTo([in] IHsmPhasePriv* pPhasePriv);
    HRESULT GetElapsedTime([out] ULONG* pDays, [out] USHORT* pHours, [out] USHORT* pMinutes, [out] USHORT* pSeconds);
    HRESULT GetMediaState([out] HSM_JOB_MEDIA_STATE* pState);
    HRESULT GetMediaStateAsString([in, out, string] OLECHAR** pName, [in] ULONG bufferSize);
    HRESULT GetName([in, out, string] OLECHAR** pName, [in] ULONG bufferSize);
    HRESULT GetPhase(HSM_JOB_PHASE* pPhase);
    HRESULT GetPriority([out] HSM_JOB_PRIORITY* pPriority);
    HRESULT GetPriorityAsString([in, out, string] OLECHAR** pName, [in] ULONG bufferSize);
    HRESULT GetState([out] HSM_JOB_STATE* pState);
    HRESULT GetStateAsString([in, out, string] OLECHAR** pName, [in] ULONG bufferSize);
    HRESULT GetStats([out] LONGLONG* items, [out] LONGLONG* size, [out] LONGLONG* skippedItems, [out] LONGLONG* skippedSize, [out] LONGLONG* errorItems, [out] LONGLONG* errorSize);
    HRESULT GetStartTime([out] FILETIME* pTime);
    HRESULT GetStopTime([out] FILETIME* pTime);
    HRESULT SetInternalStuff([in] ULONG mountCount, [in] ULONG transferCount, [in] LONGLONG elapsedTime, [in] FILETIME startTime, [in] FILETIME restartTime, [in] FILETIME stopTime);
    HRESULT SetMediaState([in] HSM_JOB_MEDIA_STATE state);
    HRESULT SetPhase([in] HSM_JOB_PHASE phase);
    HRESULT SetPriority([in] HSM_JOB_PRIORITY priority);
    HRESULT SetState([in] HSM_JOB_STATE state);
    HRESULT SetStats([in] LONGLONG items, [in] LONGLONG size, [in] LONGLONG skippedItems, [in] LONGLONG skippedSize, [in] LONGLONG errorItems, [in] LONGLONG errorSize);
};


[
    object,
    uuid(35035912-0D1C-11d2-9B0C-00104B9A2869),
    helpstring("IHsmSessionTotalsPriv Interface"),
    pointer_default(unique)
]
interface IHsmSessionTotalsPriv : IUnknown
{
    HRESULT AddItem([in] IFsaScanItem* pItem, [in] HRESULT itemHr);
    HRESULT Clone([out] IHsmSessionTotalsPriv** ppSessionTotalsPriv);
    HRESULT CopyTo([in] IHsmSessionTotalsPriv* pSessionTotalsPriv);
    HRESULT CompareToAction([in] HSM_JOB_ACTION action, [out] SHORT* pResult);
    HRESULT CompareToISessionTotals([in] IHsmSessionTotals* pTotals, [out] SHORT* pResult);
    HRESULT GetAction([out] HSM_JOB_ACTION* pAction);
    HRESULT GetName([in, out, string] OLECHAR** pName, [in] ULONG bufferSize);
    HRESULT GetStats([out] LONGLONG* items, [out] LONGLONG* size, [out] LONGLONG* skippedItems, [out] LONGLONG* skippedSize, [out] LONGLONG* errorItems, [out] LONGLONG* errorSize);
    HRESULT SetAction([in] HSM_JOB_ACTION action);
    HRESULT SetStats([in] LONGLONG items, [in] LONGLONG size, [in] LONGLONG skippedItems, [in] LONGLONG skippedSize, [in] LONGLONG errorItems, [in] LONGLONG errorSize);
};


