描述
IMofCompiler.CompileFile方法编译MOF文件(包括二进制MOFs)并将信息存储在WMI存储库中。此方法执行与Mofcomp命令相同的操作。
C++ 语法
HRESULT CompileFile( [in] LPWSTR FileName, [in] LPWSTR ServerAndNamespace, [in] LPWSTR User, [in] LPWSTR Authority, [in] LPWSTR Password, [in] LONG lOptionFlags, [in] LONG lClassFlags, [in] LONG lInstanceFlags, [in, out] WBEM_COMPILE_STATUS_INFO *pInfo ); |
PowerBASIC 语法
METHID CompileFile ( _ BYVAL FileName AS WSTRINGZ PTR, _ BYVAL ServerAndNamespace AS WSTRINGZ PTR, _ BYVAL User AS WSTRINGZ PTR, _ BYVAL Authority AS WSTRINGZ PTR, _ BYVAL Password AS WSTRINGZ PTR, _ BYVAL lOptionFlags AS LONG, _ BYVAL lClassFlags AS LONG, _ BYVAL lInstanceFlags AS LONG, _ BYREF pInfo AS LONG _ ) AS LONG |
参数
FileName
要编译的文件的名称。
ServerAndNamespace
默认命名空间的路径,其中写入任何类或实例。
您可以在远程计算机上指定命名空间(例如\\\\ computer \\ root)。该值可以被的#pragma命令覆盖,如果需要自动恢复,则不能使用该值。如果为NULL,则本地计算机上的root \\ default命名空间是默认值。
User
指定用于在远程计算机上编译的凭据的值。如果值为NULL,则用户上下文是调用进程正在使用的。当连接到本地计算机时,这一直被忽略。有关详细信息,请参阅备注部分。
Authority
指定在远程计算机上进行编译的凭据的值。如果值为NULL,则权限上下文是调用进程正在使用的。当连接到本地计算机时,这一直被忽略。有关详细信息,请参阅备注部分。
Password
指定在远程计算机上进行编译的凭据的值。如果值为NULL,则使用当前上下文的密码。当连接到本地计算机时,这一直被忽略。
lOptionFlags
当使用CompileFile方法时,可以组合一个或多个以下标志。
值 |
含义 |
WBEM_FLAG_CHECK_ONLY |
只执行语法检查。 |
WBEM_FLAG_AUTORECOVER |
如果方法成功,它会在自动数据库恢复期间将文件名添加到要编译的文件列表中。
该标志不能与命名空间,类或实例标志组合。 |
WBEM_FLAG_CONSOLE_PRINT |
向控制台发送各种有用的消息。 |
WBEM_FLAG_DONT_ADD_TO_LIST |
防止在自动恢复数据库期间将文件添加到要编译的文件列表中。
此标志与WBEM_FLAG_AUTORECOVER不兼容。 |
lClassFlags
控制类创建的标志。
参数可以是0或以下值的组合。
值 |
含义 |
WBEM_FLAG_UPDATE_ONLY |
防止创建一个类。
您可以将此标志与WBEM_FLAG_UPDATE_SAFE_MODE或WBEM_FLAG_UPDATE_FORCE_MODE组合。 |
WBEM_FLAG_CREATE_ONLY |
只允许创建类。
您不能将此标志与其他标志组合。 |
WBEM_FLAG_UPDATE_SAFE_MODE |
更新类,除非存在冲突。
您可以将此标志与WBEM_FLAG_UPDATE_ONLY组合。 |
WBEM_FLAG_UPDATE_FORCE_MODE |
尽可能更新并解决冲突。使用强制模式更新静态类会导致删除该类的所有实例。提供程序类上的强制更新不会删除该类的实例。
您可以将此标志与llnstanceFlags组合。 |
lInstanceFlags
控制实例创建的标志。
参数值可以是0或以下标志之一。
值 |
含义 |
WBEM_FLAG_UPDATE_ONLY |
只允许更新。 |
WBEM_FLAG_CREATE_ONLY |
仅允许新实例。 |
pInfo
指向“C”型结构的指针WBEM_COMPILE_STATUS_INFO。
如果值不为NULL,则发生错误,并且使用错误信息填充结构。
TYPE WBEM_COMPILE_STATUS_INFO
lPhaseError AS LONG ' long lPhaseError
hRes AS LONG ' HRESULT hRes
ObjectNum AS LONG ' long ObjectNum
FirstLine AS LONG ' long FirstLine
LastLine AS LONG ' long LastLine
dwOutFlags AS DWORD ' DWORD dwOutFlags
END TYPE
ObjectNumObjectNum,FirstLine和LastLine仅包含与文件中特定类或实例相关的错误的值。
返回值
返回代码/值 |
描述 |
WBEM_S_NO_ERROR 0 |
成功汇编MOF类定义存储在WMI存储库中。 |
WBEM_S_FALSE 1 |
MOF编译失败。 |
2 |
警告#pragma autorecoveren语句不存在。该语句应该是MOF文件的第一行。 |
备注
如果用户参数的形式为<域\\用户>,则权威参数必须为NULL。
要求
客户 |
需要Windows Vista,Windows XP,Windows 2000 Professional,Windows NT Workstation 4.0 SP4及更高版本,Windows Me,Windows 98或Windows 95。 |
服务器 |
需要Windows Server 2008,Windows Server 2003,Windows 2000 Server或Windows NT Server 4.0 SP4及更高版本。 |
头 |
在Wbemcli.inc中声明。 |
DLL |
需要Mofd.dll。 |