点击或拖拽改变大小

Functions.CreateObjectEx 方法

X#
在远程计算机上创建已注册的 COM 对象(例如 X# 自动化服务器)的实例。

命名空间:  XSharp.VFP
程序集:  XSharp.VFP (在 XSharp.VFP.dll 中) 版本:2.22 GA
语法
 FUNCTION CreateObjectEx(
	cClsIdOrcProgId,
	cComputerName,
	cIID
) AS Object CLIPPER
查看代码

参数

cClsIdOrcProgId (Optional)
类型:__Usual
指定要实例化的 COM 对象的 CLSID(类标识符) 或 PROGID(程序化标识符)。
如果您包括 CLSID,COM 对象必须在您指定的远程服务器上注册。 如果您包括 PROGID,COM 对象必须在您的本地计算机和您指定的远程计算机上注册。 尝试使用未在本地计算机上注册的 PROGID 将生成 OLE 错误代码 0x800401f3,"无效的类字符串。"
对于在本地机器上创建的 Visual FoxPro 自动化服务,您可以使用服务对象的 CLSID 和 PROGID 属性来确定本地 CLSID 和 PROGID 值。
cComputerName (Optional)
类型:__Usual
指定在其上实例化 COM 对象的远程计算机。
如果 cComputerName 为空字符串,COM 对象将在本地计算机或根据注册表指定的重定向机器上实例化。 cComputerName 支持通用命名约定(UNC)名称,如"\\myserver"和"myserver",以及域系统名称(DNS)名称。
cIID (Optional)
类型:__Usual
指定 cCLSID | cPROGID 的接口 ID GUID,当您创建早期绑定的类实例时。 如果您传递空字符串作为 cIID,X# 将尝试访问 cCLSID | cPROGID 的默认接口(IID)。

返回值

类型:Object
对象
备注
如果它成功实例化,CreateObjectEx( ) 返回 COM 对象的对象引用。 CreateObjectEx( )不能用于实例化 X# 类, 如表单–使用 CreateObject( ) 实例化 X# 类。 注意,您只能将 CreateObjectEx( ) 缩写到至少 13 个字符,区别于 CreateObject( )函数。
当您使用 CreateObject( ) 调用某些COM类时,它们返回"不支持此接口",因为它们不支持 IDispatch 接口。 使用cIID参数,您现在可以在应用程序中访问这些类。

如果您传递空字符串("")作为 cIID,X# 将尝试获取指定的 CLSID 或 PROGID 的默认接口(IID)。因为它支持通过 cIID 的早期绑定, CreateObjectEx( ) 可以通过避免大部分 IDispatch 调用所带来的开销来帮助提高性能。
CreateObjectEx( ) 支持创建新的早期绑定对象。 然而,可能您已经有了一个 X# 组件,并且您想通过早期绑定来调用它。 您可以在现有的 COM 对象上使用 GETINTERFACE( ) 支持。

有关使用 X# 创建自动化服务的更多信息,请参阅共享信息和添加 OLE。
示例
X#
1x = CreateObjectEx("excel.application","", "{000208D5-0000-0000-C000-000000000046}")
下面是一个有效的 excel 应用程序对象的函数调用。它将返回 excel.application 的默认接口。
X#
1x = CreateObjectEx("excel.application","","")
参见