IReconcilableObject::Reconcile

【勇芳软件工作室】汉化HomePreviousNext

[Now Supported on Windows NT]

将对象的状态与一个或多个其他对象进行协调。协调通过合并所有对象的状态以形成组合状态来更新对象的内部状态。

HRESULT IReconcilableObject ::对账(ro

IreconcileInitiator 【* pInitiator】, 
DWORD 【dwFlags中】, 
HWND 【hwndOwner】, 
HWND 【hwndProgressFeedback】, 
ULONG 【ulcInput】, 
IMoniker 【**rgpmkOtherInput】, 
LONG 【*plOutIndex】, 
IStorage 【*pstgNewResidues】, 
空虚 【* pvReserved】 
); 

参数

【pInitiator】

IReconcileInitiator接口的地址,用于协调进程的发起者。此参数不能为NULL。

【dwFlags中】

对照的控制标志。此参数可以为零或这些值的组合:

RECONCILEF_FEEDBACKWINDOWVALID 
 【hwndProgressFeedback】有效。
RECONCILEF_MAYBOTHERUSER 
 如果需要,公文包调解器可以提示用户交互。没有此值,则不允许用户交互。【hwndOwner】有效。
RECONCILEF_NORESIDUESOK 
 公文包协调员可以忽略对残留物的请求并进行和解。不支持残留的协调员每当发起者请求残留时,应检查该值。没有此值,不支持残留的调节器必须立即返回REC_E_NORESIDUES。
RECONCILEF_OMITSELFRESIDUE 
 公文包协调员可以丢弃与此对象相关的任何残差。发起人通常将这个值用于一代一代的对帐。
RECONCILEF_ONLYYOUWERECHANGED 
 正在调用调和成员函数将更改的对象中的更改传播到其他不变的对象。只有注册表中存在HKEY_CLASSES_ROOT \\ CLSID \\ 【clsid_of_reconciler】 \\ SingleChangeHook密钥时,此值才会设置。如果注册表中不存在该密钥,则启动器通过使其他未更改的对象与更改的对象的二进制相同的副本来执行协调。【rgpmkOtherInput】昵称识别其他对象。如果还设置了RECONCILEF_YOUMAYDOTHEUPDATES,此值将仅在【dwFlags中】中设置。如果公文包协调器成功完成更新,则应返回REC_S_IDIDTHEUPDATES,并将【plOutIndex】指向的变量设置为-1L。请注意,如果在【dwFlags中】中设置了此值,则不会在成功时返回S_OK。如果调和返回REC_S_IDIDTHEUPDATES,则启动器将不会保存源对象的存储。如果调节器希望回到启动器的位复制实现,则它可能返回S_FALSE。
RECONCILEF_RESUMEDRECONCILIATION 
 公文包调解员应恢复和解,使用提供的部分残留。没有这个值,调解者应该忽略任何输入版本中的任何“被考虑但被拒绝的”信息。
RECONCILEF_YOUMAYDOTHEUPDATES 
 公文包协调员可以自己进行更新。没有这个值,调和者可能不会自己做更新。如果对帐成功完成,则如果协调者执行了更新本身,则返回REC_S_IDIDTHEUPDATES,否则S_OK如果没有进行更新。

【hwndOwner】

处理公用事业协调员创建的子窗口的父窗口。仅当在【dwFlags中】中指定了RECONCILEF_MAYBOTHERUSER时,此参数才有效。

【hwndProgressFeedback】

处理启动器显示的进度反馈窗口。只有在【dwFlags中】中指定了RECONCILEF_FEEDBACKWINDOWVALID时,此参数才有效。公文包调解器可以使用此窗口句柄调用SetWindowText函数,以向用户显示其他对帐状态信息。

【ulcInput】

【dwFlags中】中指定的版本或部分残差数。该参数不能为零。

【rgpmkOtherInput】

数组的地址,其中包含用于访问要协调的版本或部分残差的标记的地址。

【plOutIndex】

接收索引值的变量的地址,该变量指示对帐的结果是否与初始版本之一相同。如果对帐结果是两个或多个版本的组合,则该变量设置为-1L。否则,它是一个基于零的索引,0表示此对象,1表示第一个版本,2表示第二个版本,等等。

【pstgNewResidues】

用于存储新创建的残差的IStorage接口的地址。此参数可能为NULL,表示不应保存残留物。

【pvReserved】

Reserved; must be NULL.

返回值

如果成功,返回以下成功值之一:

S_OK 
 调节已成功完成,更改必须传播到其他对象。
S_FALSE 
 没有执行和解动作。公文包协调员希望回到启动器的位复制实现。只有在【dwFlags中】中设置了RECONCILEF_ONLYYOUWERECHANGED时,才能返回此值。
REC_S_IDIDTHEUPDATES 
 调解已成功完成,所有涉及的对象(实现调和成员函数的对象以及所传递的名称所描述的所有其他对象)都已被适当更新。因此,启动器不需要进一步传播更改。如果调和返回此值,则【plOutIndex】指向的变量应设置为-1L。如果调和返回此值,启动器将不会保存源对象的存储。只有在【dwFlags中】中设置了RECONCILEF_YOUMAYDOTHEUPDATES时,才能返回此值。
REC_S_NOTCOMPLETE 
 公文包调解人完成了一些但并非全部的和解。它可能需要用户交互。更改不会传播到其他对象。
REC_S_NOTCOMPLETEBUTPROPAGATE 
 公文包调解人完成了一些但并非全部的和解。它可能需要用户交互。这些更改将传播到其他对象。

否则,成员函数返回以下错误值之一:

REC_E_NORESIDUES 
 公文包协调员不支持产生残留物,因此残留物的请求被拒绝。对象的状态不变。
REC_E_ABORTED 
 公文包协调器响应于发起者的终止请求终止了对帐(有关详细信息,请参阅IReconcileInitiator::SetAbortCallback)。对象的状态是未指定的。
REC_E_TOODIFFERENT 
 调和不能执行,因为提供的文档版本太不相似。
REC_E_INEEDTODOTHEUPDATES 
 通过【dwFlags中】中的RECONCILEF_YOUMAYDOTHEUPDATES清除对象的调和实现;对象的调和实现需要在【dwFlags中】中设置该值。
OLE_E_NOTRUNNING 
 该对象是在执行此操作之前必须运行的OLE嵌入对象。对象的状态不变。
E_UNEXPECTED 
 未指定错误

也可以看看

IReconcilableObject