📄 platman_idl.inc
字号:
);
HRESULT GetNext
(
[out] GUID *pComponentId
);
};
[
object,
uuid(2A4F783A-014E-11D2-BBA0-00A0C9C9CCEE),
helpstring("IPackage Interface"),
pointer_default(unique)
]
interface IPackage : IUnknown
{
HRESULT AddFile
(
[in] LPCOLESTR pszFullPath,
[in] LPCOLESTR pszName,
[in] DEVICE_TYPE dt,
[in] WORD wArchitecture,
[in] DWORD dwCPUType,
[in] WORD wProcessorLevel,
[in] DWORD dwPageSize,
[in] WORD wMajorVersion,
[in] WORD wMinorVersion,
[in] DWORD dwLocaleId,
[in] DWORD dwFlags
);
HRESULT AddPackageFile
(
[in] LPCOLESTR pszFullPath,
[in] LPCOLESTR pszName,
[in] PACKAGE_FILE_INFO pfi
);
HRESULT DeleteFile
(
[in] LPCOLESTR pszFullPath,
[in] LPCOLESTR pszName
);
HRESULT EnumFiles
(
[in] LPCOLESTR pszName,
[in] PACKAGE_FILE_INFO pfi,
[out] IEnumPackageFiles **ppiEnumFiles
);
};
// IPackage2 interface to support the PACKAGE_FILE_INFO2 structure which
// includes an OS specific GUID.
//
[
object,
uuid(64D0B782-47B7-4c30-8B5F-DDB7B248A91D),
helpstring("IPackage2 Interface"),
pointer_default(unique)
]
interface IPackage2 : IUnknown
{
HRESULT AddFile
(
[in] LPCOLESTR pszFullPath,
[in] LPCOLESTR pszName,
[in] DEVICE_TYPE dt,
[in] WORD wArchitecture,
[in] DWORD dwCPUType,
[in] WORD wProcessorLevel,
[in] DWORD dwPageSize,
[in] WORD wMajorVersion,
[in] WORD wMinorVersion,
[in] DWORD dwLocaleId,
[in] DWORD dwFlags,
[in] GUID OSTypeId
);
HRESULT AddPackageFile
(
[in] LPCOLESTR pszFullPath,
[in] LPCOLESTR pszName,
[in] PACKAGE_FILE_INFO2 pfi
);
HRESULT DeleteFile
(
[in] LPCOLESTR pszFullPath,
[in] LPCOLESTR pszName
);
HRESULT EnumFiles
(
[in] LPCOLESTR pszName,
[in] PACKAGE_FILE_INFO2 pfi,
[out] IEnumPackageFiles2 **ppiEnumFiles
);
};
[
object,
uuid(2A4F783D-014E-11D2-BBA0-00A0C9C9CCEE),
helpstring("IEnumPackageFiles Interface"),
pointer_default(unique)
]
interface IEnumPackageFiles : IUnknown
{
HRESULT Next
(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)] LPOLESTR rgeltFullPath[],
[out, size_is(celt), length_is(*pceltFetched)] LPOLESTR rgeltName[],
[out, size_is(celt), length_is(*pceltFetched)] PACKAGE_FILE_INFO rgeltInfo[],
[out] ULONG *pceltFetched
);
HRESULT Skip
(
[in] ULONG celt
);
HRESULT Reset
(
);
HRESULT Clone
(
[out] IEnumPackageFiles **ppEnum
);
HRESULT GetCount
(
[out] ULONG *pcelt
);
HRESULT GetNext
(
[out] LPOLESTR *pszFullPath,
[out] LPOLESTR *pszName,
[out] PACKAGE_FILE_INFO *ppfi
);
};
[
object,
uuid(BA5F16F6-F3A3-44E4-88F4-10E2B1E921F4),
helpstring("IEnumPackageFiles2 Interface"),
pointer_default(unique)
]
interface IEnumPackageFiles2 : IUnknown
{
HRESULT Next
(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)] LPOLESTR rgeltFullPath[],
[out, size_is(celt), length_is(*pceltFetched)] LPOLESTR rgeltName[],
[out, size_is(celt), length_is(*pceltFetched)] PACKAGE_FILE_INFO2 rgeltInfo[],
[out] ULONG *pceltFetched
);
HRESULT Skip
(
[in] ULONG celt
);
HRESULT Reset
(
);
HRESULT Clone
(
[out] IEnumPackageFiles2 **ppEnum
);
HRESULT GetCount
(
[out] ULONG *pcelt
);
HRESULT GetNext
(
[out] LPOLESTR *pszFullPath,
[out] LPOLESTR *pszName,
[out] PACKAGE_FILE_INFO2 *ppfi
);
};
[
object,
uuid(66B6C2DD-2590-11D2-BBA9-00A0C9C9CCEE),
helpstring("IEnumCPU Interface"),
pointer_default(unique)
]
interface IEnumCPU : IUnknown
{
HRESULT Next
(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)] WORD rgeltArchitecture[],
[out, size_is(celt), length_is(*pceltFetched)] DWORD rgeltCPUType[],
[out, size_is(celt), length_is(*pceltFetched)] LPOLESTR rgetName[],
[out] ULONG *pceltFetched
);
HRESULT Skip
(
[in] ULONG celt
);
HRESULT Reset
(
);
HRESULT Clone
(
[out] IEnumCPU **ppEnum
);
HRESULT GetCount
(
[out] ULONG *pcelt
);
HRESULT GetNext
(
[out] LPWORD pwArchitecture,
[out] LPDWORD pdwCPUType,
[out] LPOLESTR *pszName
);
};
//////////////////// NEW AUTOMATION INTERFACES/////////////////
// The following interfaces were added to support automation in
// platman 4.0.
//
// All the objects which implement non-enumeration interfaces
// now implement these additional dual interfaces also.
// For example:
// CBootableDevice implements IBootableDevice and
// IBootableDeviceConfig
//
// Now, CBootableDevice implements one additional dual
// interface IPMBootableDevice which is a wrapper for
// above two interfaces for automation clients (VB)
//
// All the objects which implement enumeration interfaces now
// implement two additional interfaces. These two additional
// interfaces are common to all enumeration objects as the
// return types in these interfaces are all variants or array
// of variants.
// For Example:
// CEnumBootableDevice implements IEnumBootableDevice
//
// Now, CEnumBootableDevice also implements two new
// interfaces: IEnumVariant and IEnumVARIANT.
//
// Both these interfaces are implemented by a new class
// CBaseCollection. Only one method in this class needs
// to be implemented (get_Item()) by any object which
// needs to provide enumeration and collections to the
// automation clients (VB).
//
// With this change, now CEnumBootableDevice now inherits
// from CBaseCollection and implements (get_Item()) method.
//
//////////////////// NEW AUTOMATION INTERFACES/////////////////
[
object,
uuid(EA720E9B-5C6D-4FBF-9352-A084866596A7),
dual,
helpstring("dual interface for IPlatformManager -- three IUnknown versions are combined into one dual interface"),
pointer_default(unique)
]
interface IPMPlatformManager : IDispatch
{
[id(1), helpstring("Enumeration of all platforms")]
HRESULT EnumPlatforms
(
[out, retval] IEnumVariant **ppiEnumPlatform
);
[id(2), helpstring("Get a platform based on a GUID or a Name")]
HRESULT GetPlatform
(
[in] BSTR bstrPlatformIdOrName,
[out, retval] IPMPlatform **ppiPlatform
);
[id(3), helpstring("Add a new platform based on a optional GUID and a Name")]
HRESULT AddPlatform
(
[in] BSTR bstrPlatformName,
[in, defaultvalue("")] BSTR bstrPlatformId,
[out, retval] IPMPlatform **ppiPlatform
);
[id(4), helpstring("Delete a platform based on a GUID or a Name")]
HRESULT DeletePlatform
(
[in] BSTR bstrPlatformIdOrName
);
[id(5), helpstring("Enumeration of all properties")]
HRESULT EnumProperties
(
[out, retval] IEnumVariant **ppiEnumProperty
);
[id(6), helpstring("Get a property based on a GUID")]
HRESULT GetProperty
(
[in] BSTR bstrPropId,
[out, retval] IPMProperty **ppiProperty
);
[id(7), helpstring("Add a new property based on a optional GUID and a LinkName")]
HRESULT AddProperty
(
[in] BSTR bstrLinkName,
[in, defaultvalue("")] BSTR bstrPropId,
[out, retval] IPMProperty **ppiProperty
);
[id(8), helpstring("Delete a property based on a GUID")]
HRESULT DeleteProperty
(
[in] BSTR bstrPropId
);
[id(9), helpstring("Enumeration of all bootable devices")]
HRESULT EnumBootableDevices
(
[out, retval] IEnumVariant **ppiEnumBootableDevice
);
[id(10), helpstring("Get a bootable device based on a GUID or a Name")]
HRESULT GetBootableDevice
(
[in] BSTR bstrBootableDeviceIdOrName,
[out, retval] IPMBootableDevice **ppiBootableDevice
);
[id(11), helpstring("Add a new bootable device based on a optional GUID and a Name")]
HRESULT AddBootableDevice
(
[in] BSTR bstrBootableDeviceName,
[in, defaultvalue("")] BSTR bstrBootableDeviceId,
[out, retval] IPMBootableDevice **ppiBootableDevice
);
[id(12), helpstring("Delete a bootable device based on a GUID or a Name")]
HRESULT DeleteBootableDevice
(
[in] BSTR bstrBootableDeviceIdOrName
);
[id(13), helpstring("Enumeration of all service categories")]
HRESULT EnumServiceCategories
(
[out, retval] IEnumVariant **ppiEnumServiceCategory
);
[id(14), helpstring("Get a service category based on a GUID or a Name")]
HRESULT GetServiceCategory
(
[in] BSTR bstrServiceCategoryIdOrName,
[out, retval] IPMServiceCategory **ppiServiceCategory
);
[id(15), helpstring("Add a service category based on a optional GUID and a Name")]
HRESULT AddServiceCategory
(
[in] BSTR bstrServiceCategoryName,
[in, defaultvalue("")] BSTR bstrServiceCategoryId,
[out, retval] IPMServiceCategory **ppiServiceCategory
);
[id(16), helpstring("Delete a service category based on a GUID or a Name")]
HRESULT DeleteServiceCategory
(
[in] BSTR bstrServiceCategoryIdOrName
);
[id(17), helpstring("Enumeration of all CPUs")]
HRESULT EnumCPUs
(
[out, retval] IEnumVariant **ppiEnumCPU
);
[id(18), helpstring("Get a CPU based on GUID or a Name")]
HRESULT GetCPU
(
[in] BSTR bstrCPUIdOrName,
[out, retval] IPMCPU **ppiCPU
);
[id(19), helpstring("Add a new CPU")]
HRESULT AddCPU
(
[in] BSTR bstrCPUName,
[in] long dwCpuNum,
[in, defaultvalue(0)] int wArchitecture,
[in, defaultvalue(0)] long dwCPUType,
[in, defaultvalue("")] BSTR bstrCPUId,
[in, optional] VARIANT vtPageSize,
[in, optional] VARIANT vtLevel,
[in, defaultvalue("")] BSTR bstrDefaultValue,
[out, retval] IPMCPU **ppiCPU
);
[id(20), helpstring("Delete a CPU based on a GUID or a Name")]
HRESULT DeleteCPU
(
[in] BSTR bstrCPUIdOrName
);
[id(21), helpstring("Enumeration of all OSs")]
HRESULT EnumOSs
(
[out, retval] IEnumVariant **ppiEnumOS
);
[id(22), helpstring("Get a OS based on a GUID or a Name")]
HRESULT GetOS
(
[in] BSTR bstrOSIdOrName,
[out, retval] IPMOS **ppiOS
);
[id(23), helpstring("Add a new OS based on a optional GUID, name, major-minor versions and type GUID")]
HRESULT AddOS
(
[in] BSTR bstrOSName,
[in] int wMajorVersion,
[in] int wMinorVersion,
[in] BSTR bstrOSTypeId,
[in, defaultvalue("")] BSTR bstrOSId,
[out, retval] IPMOS **ppiOS
);
[id(24), helpstring("Delete a OS based on a GUID or a Name")]
HRESULT DeleteOS
(
[in] BSTR bstrOSIdOrName
);
[id(25), helpstring("Enumeration of all Packages")]
HRESULT EnumPackages
(
[out, retval] IEnumVariant **ppiEnumPackage
);
[id(26), helpstring("Get a package based on a GUID or a Name")]
HRESULT GetPackage
(
[in] BSTR bstrPackageIdOrName,
[out, retval] IPMPackage **ppiPackage
);
[id(27), helpstring("Add a package based on a optional GUID and a Name")]
HRESULT AddPackage
(
[in] BSTR bstrPackageName,
[in, defaultvalue("")] BSTR bstrPackageId,
[out, retval] IPMPackage **ppiPackage
);
[id(28), helpstring("Delete a package based on a GUID or a Name")]
HRESULT DeletePackage
(
[in] BSTR bstrPackageIdOrName
);
[id(29), helpstring("Add a toolkit based on a optional GUID and a Name")]
HRESULT AddToolkit
(
[in] BSTR bstrName,
[in, defaultvalue("")] BSTR bstrToolkitId
);
[id(30), helpstring("Delete a toolkit based on a GUID or a Name")]
HRESULT DeleteToolkit
(
[in] BSTR bstrToolkitIdOrName
);
[id(31), helpstring("Get the connection based on a GUID")]
HRESULT GetConnection
(
[in] BSTR bstrConnectId,
[out, retval] IPMConnection **ppiConnection
);
[id(32), helpstring("Get platman version")]
HRESULT GetVersion
(
[out] VARIANT* pwMajorVersion,
[out] VARIANT* pwMinorVersion,
[out] VARIANT* pdwBuildNumber
);
[id(33), helpstring("Create and return a new GUID")]
HRESULT CreateGUID
(
[out, retval] BSTR* pbstrNewGuid
);
[id(34), helpstring("Removes Platform Manager registry entries if there are no toolkits or platforms")]
HRESULT CleanRegistry
(
);
// A universal platform is a combination of a standard sdk and the TUSDK on which it
// is based on; this enumeration returns a list of all platforms which support all
// the installed TUSDKs. The platforms returned from this call use the headers and
// libs from the TUSDK whereas rest of the platorm stuff is captured from the real
// platform;
[id(35), helpstring("Enumeration of all universal platforms")]
HRESULT EnumUniversalPlatforms
(
[out, retval] IEnumVariant **ppiEnumUniversalPlatform
);
};
// Automation version of IPlatformCE
[
object,
uuid(5BA32507-0015-40A2-A0FE-AA81CB265FE1),
dual,
helpstring("IPMPlatform dual Interface"),
pointer_default(unique)
]
interface IPMPlatform : IDispatch
{
[propget, id(1), helpstring("Get the Platform GUID")]
HRESULT Id
(
[out, retval] BSTR *pbstrPlatformId
);
[propget, id(2), helpstring("Get the platform name")]
HRESULT Name
(
[out, retval] BSTR *pbstrPlatformName
);
[propput, id(2), helpstring("Set the platform name")]
HRESULT Name
(
[in] BSTR bstrPlatformName
);
[id(3), helpstring("Enumeration of properties")]
HRESULT EnumProperties
(
[out, retval] IEnumVariant **ppiEnumProperty
);
[id(4), helpstring("Get a property based on a GUID")]
HRESULT GetProperty
(
[in] BSTR bstrPropId,
[out, retval] IPMProperty **ppiProperty
);
[id(5), helpstring("Add a property based on a optional GUID and a LinkName")]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -