⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 platman_idl.inc

📁 EVC4.rar
💻 INC
📖 第 1 页 / 共 5 页
字号:
		helpstring("IConnection2 Interface"),
		pointer_default(unique)
	]
	interface IConnection2 : IConnection
	{
		
		//SystemGetInfoEx will also query the Device for the OSTypeId, which should be
		//specified as a GUID
		HRESULT SystemGetInfoEx
		(
			[out] LPWORD pwArchitecture,
			[out] LPDWORD pdwCPUType,
			[out] LPDWORD pdwPageSize,
			[out] LPWORD pwMajorVersion,
			[out] LPWORD pwMinorVersion,
			[out] GUID *OSTypeId
		);
		
		//ConnectId will query the connection object for a GUID that represents 
		// the connection
		HRESULT GetConnectId //Get the GUID that represents the connection.
		(
			[out] GUID *pConnectId
		);

	};



	[
		object,
		uuid(DA438BB0-FA87-11D1-BB9E-00A0C9C9CCEE),
		helpstring("IStream Interface"),
		pointer_default(unique)
	]
	interface IConnectionStream : IUnknown
	{
		HRESULT Send
		(
			[in] DWORD dwSize,
			[in, size_is(dwSize)] BYTE *pBuffer,
			[out] LPDWORD pdwSizeSent
		);
		HRESULT Receive
		(
			[out] LPDWORD pdwBytesReceived
		);
		HRESULT ReadBytes
		(
			[in] DWORD dwSize,
			[out, size_is(dwSize), length_is(*pdwSizeRecv)] BYTE *pBuffer,
			[out] LPDWORD pdwSizeRecv
		);
		HRESULT ReceiveAsync
		(
			[in] ICallBack *piCallBack
		);
		HRESULT SendAsync
		(
			[in] ICallBack *piCallBack
		);
		HRESULT Close
		(
		);
	};

	[
		object,
		uuid(EF075F33-141A-4D6A-9D88-33360EBFCBA5),
		helpstring("IConnectionStream2 Interface which provides timeout option on receive"),
		pointer_default(unique)
	]
	interface IConnectionStream2 : IUnknown
	{
		HRESULT Receive
		(
			[in] DWORD dwTimeout,
			[out] LPDWORD pdwBytesReceived
		);
		HRESULT ReadBytes
		(
			[in] DWORD dwSize,
			[in] DWORD dwTimeout,
			[out, size_is(dwSize), length_is(*pdwSizeRecv)] BYTE *pBuffer,
			[out] LPDWORD pdwSizeRecv
		);
	};
	
	[
		object,
		uuid(DA438BB3-FA87-11D1-BB9E-00A0C9C9CCEE),
		helpstring("ICallBack Interface"),
		pointer_default(unique)
	]
	interface ICallBack : IUnknown
	{
		HRESULT Connect
		(
			[in] IConnection *piConnection
		);
		HRESULT RecvNotify
		(
			[in] DWORD dwSize,
			[in, size_is(dwSize)] BYTE *pBuffer
		);
		HRESULT SendNotify
		(
		);
		HRESULT ReportAction
		(
			[in] REPORT_ACTION_TYPE at,
			[in] LPCOLESTR pszName,
			[in] HRESULT hrActionFailed,
			[in] DWORD dwSize
		);
		HRESULT ConfirmCopy
		(
			[in] LPCOLESTR pszName,
			[in] FILETIME ftSource,
			[in] FILETIME ftDest
		);
		HRESULT CopyUpdate
		(
			[in] LPCOLESTR pszName,
			[in] DWORD dwSizeCopied,
			[in] DWORD dwSizeTotal
		);
		HRESULT StreamNotify
		(
			[in] IConnectionStream *piConnectionStream
		);
	};
	


	// You can build a class that inherits from ICallBack and from IPlatManCallback2.
	// You must pass the ICallBack interface to the routines like Attach, 
	// CopyQueuedFiles, SendAsync, etc.  Some of these routines will, however, QI the
	// ICallBack interface for IID_IPlatManCallback2.  If your callback object can export
	// an IPlatManCallback2 interface, then the routine will pass information to that
	// interface.

	typedef struct 
	{
		BOOL		fIsPeExe;
		FILETIME	FileTime;
		WORD		TargetCpu;
	} CB2_FILEINFO;

	[
		object,
		uuid(EC0A1BC0-A1F4-11d3-98FC-00105AA90682),
		helpstring("IPlatManCallback2 Interface"),
		pointer_default(unique)
	]
	interface IPlatManCallback2 : IUnknown
	{
		HRESULT ConfirmCopy2
		(
			[in] LPCOLESTR		pszName,
			[in] CB2_FILEINFO*	pSrcFileInfo,
			[in] CB2_FILEINFO*	pDestFileInfo
		);
	};
	
	[
		object,
		uuid(DA438BC2-FA87-11D1-BB9E-00A0C9C9CCEE),
		helpstring("IPlatformManagerConfig Interface"),
		pointer_default(unique)
	]
	interface IPlatformManagerConfig : IUnknown
	{
		HRESULT AddPackage
		(
			[in] GUID PackageId,
			[in] LPCOLESTR pszPackageName,
			[out] IPackage **ppiPackage
		);
		HRESULT GetPackage
		(
			[in] GUID PackageId,
			[out] IPackage **ppiPackage
		);
		HRESULT DeletePackage
		(
			[in] GUID PackageId
		);
		HRESULT AddPlatform
		(
			[in] GUID PlatformId, 
			[in] LPCOLESTR pszPlatformName,
			[out] IPlatformCE **ppiPlatform
		);
		HRESULT DeletePlatform
		(
			[in] GUID PlatformId
		);
		HRESULT GetVersion
		(
			[out] LPWORD pwMajorVersion,
			[out] LPWORD pwMinorVersion,
			[out] LPDWORD pdwBuildNumber
		);
		HRESULT GetVersion2
		(
			[out] LPWORD pwMajorVersion,
			[out] LPWORD pwMinorVersion,
			[out] LPDWORD pdwBuildNumber
		);
		HRESULT AddToolkit
		(
			[in] GUID ToolkitId,
			[in] LPCOLESTR pszName
		);
		HRESULT DeleteToolkit
		(
			[in] GUID ToolkitId
		); 
	};

	[
		object,
		uuid(30A76E8E-8B0D-4E3b-8EC7-9B57862EFBF1),
		helpstring("IPlatformManagerConfig2 Interface"),
		pointer_default(unique)
	]
	interface IPlatformManagerConfig2 : IPlatformManagerConfig
	{
		// AddPackage adds an IPackage2 interface
		HRESULT AddPackage2
		(
			[in] GUID PackageId,
			[in] LPCOLESTR pszPackageName,
			[out] IPackage2 **ppiPackage
		);

		//GetPackage retrieves an IPackage2 interface
		HRESULT GetPackage2
		(
			[in] GUID PackageId,
			[out] IPackage2 **ppiPackage
		);
		
	};


	//The IPlatformManagerConfig3 interface is to help configure Bootable Devices
	//   and add Service Categories.
	[
		object,
		uuid(817E8295-C9EE-48ec-B1AC-37A858B73609),
		helpstring("IPlatformManagerConfig3 Interface"),
		pointer_default(unique)
	]
	interface IPlatformManagerConfig3 : IPlatformManagerConfig2
	{
		HRESULT AddBootableDevice
		(
			[in] GUID BootableDeviceId, 
			[in] LPCOLESTR pszBootableDeviceName,
			[out] IBootableDevice **ppiBootableDevice
		);
		HRESULT DeleteBootableDevice
		(
			[in] GUID BootableDeviceId
		);
		HRESULT AddServiceCategory
		(
			[in] GUID ServiceCategoryId, 
			[in] LPCOLESTR pszServiceCategoryName,
			[out] IServiceCategory **ppiServiceCategory
		);
		HRESULT DeleteServiceCategory
		(
			[in] GUID ServiceCategoryId
		);

	};



	// IBootableDeviceConfig to support
	// bootable devices
	[
		object,
		uuid(016ED627-9104-4fb6-8F82-E522755CC5AA),
		helpstring("IBootableDeviceConfig Interface"),
		pointer_default(unique)
	]
	interface IBootableDeviceConfig : IUnknown
	{
		HRESULT SetBootableDeviceName
		(
			[in] LPCOLESTR pszName
		);
		HRESULT AddService
		(
			[in] GUID ServiceCategoryId,
			[in] GUID ServiceCLSID
		);
		HRESULT DeleteService
		(
			[in] GUID ServiceCategoryId
		);
	};


	// IServiceCategoryConfig to support
	// bootable devices
	[
		object,
		uuid(C335A883-E95A-4ea4-9DDA-FBE83C55D519),
		helpstring("IServiceCategoryConfig Interface"),
		pointer_default(unique)
	]
	interface IServiceCategoryConfig : IUnknown
	{
		HRESULT SetServiceCategoryName
		(
			[in] LPCOLESTR pszServiceCategoryName
		);
		HRESULT AddServiceInfo
		(
			[in] GUID ServiceCLSID,
			[in] LPCOLESTR pszServiceName,
			[out] IServiceInfo **ppiServiceInfo
		);
		HRESULT DeleteServiceInfo
		(
			[in] GUID ServiceCLSID
		);


	};





	// IServiceInfoConfig to support
	// bootable devices
	[
		object,
		uuid(324AA352-F2F5-4c23-AD31-1088D7D8EA97),
		helpstring("IServiceInfoConfig Interface"),
		pointer_default(unique)
	]
	interface IServiceInfoConfig : IUnknown
	{
		HRESULT SetServiceInfoName
		(
			[in] LPCOLESTR pszServiceInfoName
		);

	};



	
	[
		object,
		uuid(DA438BC7-FA87-11D1-BB9E-00A0C9C9CCEE),
		helpstring("IPlatformConfig Interface"),
		pointer_default(unique)
	]
	interface IPlatformConfig : IUnknown
	{
		HRESULT AddPackage
		(
			[in] GUID PackageId,
			[in] LPCOLESTR pszPackageName,
			[out] IPackage **ppiPackage
		);
		HRESULT GetPackage
		(
			[in] GUID PackageId,
			[out] IPackage **ppiPackage
		);
		HRESULT DeletePackage
		(
			[in] GUID PackageId
		);
		HRESULT AddComponent
		(
			[in] COMPONENT_KIND ck,
			[in] GUID ComponentId,
			[in] BOOL fDefault
		);
		HRESULT SetPlatformName
		(
			[in] LPCOLESTR pszPlatformName
		);
		HRESULT AddDevice
		(
			[in] GUID DeviceId,
			[in] LPCOLESTR pszName,
			[in] DEVICE_TYPE dt, 
			[out] IRemoteDevice **ppiDevice
		);
		HRESULT DeleteDevice
		(
			[in] GUID DeviceId
		);
		HRESULT EnumComponent
		(
			[in] COMPONENT_KIND ck,
			[out] IEnumComponent **ppiEnumComponent
		);
		HRESULT GetComponentName
		(
			[in] COMPONENT_KIND ck,
			[in] GUID ComponentId,
			[out] LPOLESTR *pszName			
		);
		HRESULT GetComponentType
		(
			[in] COMPONENT_KIND ck,
			[in] GUID ComponentId,
			[out] DEVICE_TYPE *pdt
		);
		HRESULT AddSupportedCPU
		(
			[in] WORD wArchitecture,
			[in] DWORD dwCPUType,
			[in] LPCOLESTR pszName
		);
		HRESULT SetOSInfo
		(
			[in] WORD wMajorVersion,
			[in] WORD wMinorVersion
		);

	};

	[
		object,
		uuid(FA59C739-CFD3-4421-B7F0-AA22D48D864C),
		helpstring("IPlatformConfig2 Interface"),
		pointer_default(unique)
	]
	interface IPlatformConfig2 : IPlatformConfig
	{
		// AddPackage adds an IPackage2 interface
		HRESULT AddPackage2
		(
			[in] GUID PackageId,
			[in] LPCOLESTR pszPackageName,
			[out] IPackage2 **ppiPackage
		);
		// AddPackage now gets an IPackage2 interface
		HRESULT GetPackage2
		(
			[in] GUID PackageId,
			[out] IPackage2 **ppiPackage
		);
	};


	[
		object,
		uuid(DA438BCA-FA87-11D1-BB9E-00A0C9C9CCEE),
		helpstring("IRemoteDeviceConfig Interface"),
		pointer_default(unique)
	]
	interface IRemoteDeviceConfig : IUnknown
	{
		HRESULT SetDeviceName
		(
			[in] LPCOLESTR pszName
		);
		HRESULT SetComponent
		(
			[in] COMPONENT_KIND ck,
			[in] GUID ComponentId
		);
		HRESULT GetComponent
		(
			[in] COMPONENT_KIND ck,
			[out] GUID *pComponentId
		);
		HRESULT ConfigureComponent
		(
			[in] HWND hWnd,
			[in] COMPONENT_KIND ck,
			[in] GUID ComponentId
		);
	};

#ifdef DEVICE_SPECIFIC_TRANSPORTS
	[
		object,
		uuid(22ADBCCF-2007-451b-95D6-267E78B0EF98),
		helpstring("IRemoteDeviceConfig Interface"),
		pointer_default(unique)
	]
	interface IRemoteDeviceConfig2 : IRemoteDeviceConfig
	{
		//Allows you to Add a Device specific package.
		HRESULT AddPackage2
		(
			[in] GUID PackageId,
			[in] LPCOLESTR pszPackageName,
			[out] IPackage2 **ppiPackage
		);
		//Allows you to Get the specified Device specific package.
		HRESULT GetPackage2
		(
			[in] GUID PackageId,
			[out] IPackage2 **ppiPackage
		);

		//Allows you to Delete the specified Device specific package.
		HRESULT DeletePackage
		(
			[in] GUID PackageId
		);

		//Allows you to Add device specific Servers and Transports.
		HRESULT AddComponent
		(
			[in] COMPONENT_KIND ck,
			[in] GUID ComponentId,
			[in] BOOL fDefault
		);

		//Allows you to get an enumeration of device specific Servers and Transports.
		HRESULT EnumComponent
		(
			[in] COMPONENT_KIND ck,
			[out] IEnumComponent **ppiEnumComponent
		);
	}
#endif //DEVICE_SPECIFIC_TRANSPORTS

	[
		object,
		uuid(DA438BCD-FA87-11D1-BB9E-00A0C9C9CCEE),
		helpstring("IEnumComponent Interface"),
		pointer_default(unique)
	]
	interface IEnumComponent : IUnknown
	{
		HRESULT Next
		(
			[in] ULONG celt,
			[out, size_is(celt), length_is(*pceltFetched)] GUID *rgelt[],
			[out] ULONG *pceltFetched
		);

		HRESULT Skip
		(
			[in] ULONG celt
		);

		HRESULT Reset
		(
		);

		HRESULT Clone
		(
			[out] IEnumComponent **ppEnum
		);

		HRESULT GetCount
		(
			[out] ULONG *pcelt

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -