勇芳软件工作室.汉化:  Windows Management Instrumentation > COM API for WMI > Interfaces > IMofCompiler >

CompileFile Method

Previous pageReturn to chapter overviewNext page

描述

 

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

 

ObjectNumObjectNumFirstLineLastLine仅包含与文件中特定类或实例相关的错误的值。

 

返回值

 

返回代码/值

描述

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。