Add rayman2 source files

This commit is contained in:
2024-09-18 02:33:44 +08:00
parent bcc093f8ed
commit fb036c54fd
14339 changed files with 2596224 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
[OPTIONS]
HCW=0
COMPRESS=12 Hall Zeck
LCID=0x409 0x0 0x0 ;Anglais - E.U.
REPORT=Yes
CHARSET=178
BMROOT=bitmaps
HLP=.\CM_Help.hlp
[FILES]
.\cm_help.rtf
[CONFIG]
BrowseButtons()

View File

@@ -0,0 +1,425 @@
{\rtf1\ansi \deff4\deflang1033{\fonttbl{\f4\froman\fcharset0\fprq2 Times New Roman;}{\f5\fswiss\fcharset0\fprq2 Arial;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;
\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;
\red192\green192\blue192;}{\stylesheet{\widctlpar \f4\fs18 \snext0 Normal;}{\s1\sb240\sa60\keepn\widctlpar \b\f5\ul\kerning28 \sbasedon0\snext0 heading 1;}{\s2\sb240\sa60\keepn\widctlpar \b\i\f5 \sbasedon0\snext0 heading 2;}{\*\cs10 \additive
Default Paragraph Font;}{\s15\widctlpar \f4\fs18 \sbasedon0\snext15 footnote text;}{\*\cs16 \additive\super \sbasedon10 footnote reference;}{\s17\widctlpar \f4\fs18 \sbasedon0\snext17 endnote text;}{\*\cs18 \additive\super \sbasedon10 endnote reference;}}
{\info{\title Coherence manager help}{\subject help file about coherence manager}{\author Lhullier vincent}{\operator Lhullier vincent}{\creatim\yr1997\mo1\dy27\hr14\min24}{\revtim\yr1997\mo5\dy27\hr14\min35}{\version3}{\edmins8}{\nofpages26}
{\nofwords2503}{\nofchars14268}{\*\manager Vincent Lhullier}{\*\company PARTICULIER}{\*\category help file}{\vern57443}}\paperw11906\paperh16838\margl1417\margr1417\margt1417\margb1417 \deftab708\widowctrl\ftnbj\aenddoc\hyphhotz425\hyphcaps0\formshade
\fet0\sectd \linex0\headery709\footery709\colsx709\endnhere {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4
\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}
{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \s1\sb240\sa60\keepn\widctlpar \b\f5\ul\kerning28 {\cs16\b0\super +{\footnote
\pard\plain \s15\widctlpar \f4\fs18 {\cs16\super +} PAGE_000}}{\b0 }{\cs16\b0\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDH_GENERAL}K{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super K} G\'e9n\'e9ralit\'e9s}$
{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super $} G\'e9n\'e9ralit\'e9s}>{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super >} Normale}}\{bmr ubilogo.bmp\}Coherence Manager\line {\fs20\ulnone (Version 1.O)}
\par \pard\plain \qj\widctlpar \f4\fs18 This utility included in CPA interface is able to manage link between object. Links are registered, and when an object is deleted the manager keep deleted link so you can access objects with deleted ch
ild through an interface. To use it you must registered all the links you want and each time an object (that is linked) is deleted you must specified it.
\par A window with all object with deleted child could be displayed.
\par
\par
\par {\uldb Introduction}{\v IDJ_INTRODUCTION}
\par {\uldb
\par Interface}{\v IDJ_INTERFACE}
\par
\par {\uldb Programming with Coherence Manager}{\v IDJ_PROGRAMMING}
\par {\uldb Communication with DLL}{\v\uld IDJ_DLLCOMMUNICATION}
\par {\uldb Coherence Manager Class}{\v IDJ_CLASS}
\par
\par {\uldb Reported bugs}{\v IDJ_REPORTEDBUGS}
\par {\uldb Frequently Asked Questions}{\v IDJ_FAQ}
\par {\uldb Questions And Request}{\v IDJ_REQUEST}
\par \pard\plain \s1\sb240\sa60\keepn\widctlpar \b\f5\ul\kerning28 \page {\cs16\super +{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super +} PAGE_010}} {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDJ_INTRODUCTION}}
Introduction
\par \pard\plain \widctlpar \f4\fs18 A link join two object one is the {\uld father}{\v\uld IDP_FATHER}, the other is the {\uld child}{\v IDP_CHILD}.
\par When you delete an object all links where this object is the father are deleted, all father which have this object as a child are set as incoherent object.
\par
\par {\b What is new\~!
\par }
\par A link have actually a weight value that represent the number of times the father and child objects are linked together. In the interface this number is written for each child before its name in between two bracket [ ].
\par \pard\plain \s1\sb240\sa60\keepn\widctlpar \b\f5\ul\kerning28 \page {\cs16\super +{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super +} PAGE_020}} {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDJ_INTERFACE}}
Coherence Manager Interface
\par \pard\plain \widctlpar \f4\fs18
\par {\b\fs20 Accessing Coherence Manager Interface
\par }
\par To display the coherence manager dialog box, choose in the application menu the {\b Options \\ Show Coherence Manager} entry The dialog box will be opened each time an object becomes incoherent if the {\b Options \\ Automatic Coherence Manager}
entry is check.
\par
\par \{bmc WndMenu.bmp\}
\par
\par {\b\fs20 Using Coherence Manager Interface
\par }
\par Interface manager actually display two different list, the list of incoherent objects and list of all object which are father in at least one link.
\par
\par {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDJ_INTERF_INCOHERENCE}} \{bmc WndIncoh.shg\}
\par
\par Each root line (that begin with \{bmc incohere.bmp\} icon ) show name of an incoherent father. The name is followed by the owner DLL name between parenthesis. This second name could be \ldblquote \~No DLL\~\rdblquote if the father object has no owner DLL
\par
\par By clicking on the icon you expand the branch and so all deleted child (icon \{bmc delchild.bmp\}) and destroyed child (icon \{bmc deschild.bmp\} are displayed. Clicking again in the icon collapse the branch.
\par By double-clicking in a father name (or DLL name) activate the DLL which own the object. Normally the editor which manage incoherent object is opened and display the incoherent object to permit modification to correct object.
\par By right-clicking in a line you make\rquote s appear a contextual menu which offer at present only one option \{bmc wndpopup.bmp\}
\par
\par {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDJ_INTERF_FATHER}} \{bmc WndFathe.shg\}
\par \pard\plain \s1\sb240\sa60\keepn\widctlpar \b\f5\ul\kerning28 \page {\cs16\super +{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super +} PAGE_030}} {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDJ_PROGRAMMING}}
Programming with Coherence Manager
\par \pard\plain \s2\sb60\sa60\keepn\widctlpar \b\i\f5 {\b0\i0\fs18 see also\~: }{\b0\i0\fs18\uldb Coherence Manager Class}{\b0\i0\v\fs18 IDJ_CLASS}
\par \pard\plain \widctlpar \f4\fs18
\par To access Coherence Manager you must use the global variable {\b g_oCoherenceManager}. You must include {\uldb CoheMngr.hpp}{\v IDJ_FILES} which is located in the Editor\\interface\\inc directory or just include CPALib.h. This variable is an instance of {
\uldb CCoherenceManager}{\v\uldb IDJ_CLASS} class.
\par
\par If you want to manage link with the coherence manager you do have to respect the very important rule\~: as soon as you registered an object as a participating to a link, you must inform coherence manager when you delete it.
\par Another rule is that all registered object must inherit the {\b CPA_ReachableObject} class. If you registered an object that doesn\rquote t respect this rule, and because {\uldb Coherence Manager interface}{\v IDJ_INTERFACE}
use CPA_ReachableObject member function to display object name, exception errors could occur.
\par
\par Now all links could be registered more than one time. Each link have a weight param
eter which is increase by one each time you register this link. When you delete this link weight is decrease by one and link is really deleted only if weight is zero. See Coherence Manager {\uldb Links Methods}{\v IDJ_LINKMETHODS}
\par
\par {\b\fs24 Register Links
\par }
\par To use Coherence manager first step is to register links. Each time an object1 reference an other object2 and if you want this link to be watch by the coherence manager write a similar code as
\par
\par \pard \widctlpar\box\brdrs\brdrw15\brsp20 \tab g_oCoherenceManager.{\uldb m_fn_vAddALink}{\v IDJ_FUNCTIONADDALINK} ( &object1, &object2 )
\par \pard \widctlpar
\par The two parameters are the reference on object that are linked.
\par Recall that object1 and object2 must inherit CPA_ReachableObject
\par
\par {\b\fs24 Inform Coherence Manager when an object is deleted
\par }
\par There is two way to delete an object\~:
\par {\pntext\pard\plain\fs18\lang1033 1.\tab}\pard \fi-283\li283\widctlpar{\*\pn \pnlvlbody\pndec\pnstart1\pnindent283\pnhang{\pntxta .}}the object is set as deleted but is keep in memory to be restore by an undo for example
\par {\pntext\pard\plain\fs18\lang1033 2.\tab}the object is really deleted, the memory it occupied is freed and could be taken by another object.
\par \pard \widctlpar
\par See {\uldb object methods in CCoherenceManager class}{\v IDJ_OBJECTSMETHODS}
\par
\par \pard\plain \s1\sb240\sa60\keepn\widctlpar \b\f5\ul\kerning28 {\fs20 \page }{\cs16\super +{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super +} PAGE_040}} {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDJ_FILES}}
Coherence Manager Files
\par \pard\plain \widctlpar \f4\fs18 The Coherence Manager is declared and implemented in this two files\~:
\par \pard \fi708\widctlpar CoheMngr.hpp
\par CoheMngr.cpp
\par \pard \widctlpar The incoherence display dialog box is declared and implemented in
\par \pard \fi708\widctlpar CMDlg.hpp
\par CMDlg.cpp
\par \pard \widctlpar All these files are in the Editor\\Interface\\inc directory. To use Coherence manager in a DLL just include CPALib.h
\par \pard\plain \s1\sb240\sa60\keepn\widctlpar \b\f5\ul\kerning28 \page {\cs16\super +{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super +} PAGE_045}} {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDJ_DLLCOMMUNICATION}}
Communication with DLL
\par \pard\plain \widctlpar \f4\fs18 When you register an object (that is a {\uld father}{\v IDP_FATHER}) with a owner DLL, function of this DLL could be called when some operation is done\~:
\par - If you double click on a such object in the Coherence Manager {\uldb interface}{\v IDJ_INTERFACE}, the owner DLL is activated with a pointer on the object.
\par - When a registered link is deleted because a child object was deleted or destroyed, the Coherence Manager called the DLL function fn_vOnInvalidateLink (see below)
\par - when a link is restored, DLL function fn_vOnRestoreLink is called (see below)
\par
\par {\b\fs20 communication functions
\par }
\par this function are CPA_DLLBase member functions
\par
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \fi567\widctlpar {\b virtual BOOL fn_bOnInvalidateLink (CPA_ReachableObject *pOwner,
\par }\pard \fi708\li2832\widctlpar {\b CPA_ReachableObject *pReferencedObject,
\par BOOL bDestroyed)
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \fi-567\li567\widctlpar\tx567 {\b\i \tab }
Inform DLL that an object referenced by another object which is manage by it is deleted or destroyed and may cause incoherence. You must write in this function simple code such as setting the reference to NULL or to a default value because an object could
have several father, and the same function could be called for other objects and for other DLL.{\b\i
\par }\pard \widctlpar\tx567 {\b\i Parameters
\par }{\b \tab CPA_ReachableObject *pOwner
\par }\tab The object which has a reference on the deleted/destroyed child.
\par
\par \tab {\b CPA_ReachableObject *pReferencedObject
\par }\tab The deleted/destroyed child that cause the links to be broken.
\par
\par {\b \tab BOOL bDestroyed
\par }\tab if TRUE, the referenced object is destroyed, else it is deleted
\par {\i return value
\par }\tab return TRUE if you resolve the incoherence and you don\rquote t want to see the broken link appear in invalid links. By default, this virtual function return FALSE.
\par \pard \widctlpar
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \fi567\widctlpar {\b virtual void fn_vOnRestoreLink (CPA_ ReachableObject *pOwner,
\par }\pard \li3261\widctlpar {\b CPA_ ReachableObject *pReferencedObject)
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \fi-567\li567\widctlpar\tx567 {\b\i \tab }
Inform DLL that an object referenced by another object and so a link is restore. You must write in this function simple code such as setting the reference to the given one because an object could have several father, and the same function could be called
for other objects and for other DLL.{\b\i
\par }\pard \widctlpar\tx567 {\b\i Parameters
\par }{\b \tab CPA_ReachableObject *pOwner
\par }\tab The object which has a reference on the restored child.
\par
\par \tab {\b CPA_ReachableObject *pReferencedObject
\par }\tab The restored child
\par \pard \widctlpar
\par \pard\plain \s1\sb240\sa60\keepn\widctlpar \b\f5\ul\kerning28 \page {\cs16\super +{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super +} PAGE_050}} {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDJ_CLASS}}
CCoherenceManager Class
\par \pard\plain \widctlpar \f4\fs18 {\b\ul
\par }{\b\fs20 Method Groups:
\par }{\b\ul
\par }{\ul The hyperlinks below take you to the start of groups of related methods within the class:
\par
\par }{\uldb Link Methods}{\v IDJ_LINKMETHODS}{\uldb
\par Object Methods}{\v\uldb IDJ_OBJECTSMETHODS}{\uldb
\par Incoherence Access Methods}{\v\uldb IDJ_INCOHERENCEMETHODS}{\uldb
\par
\par }{\b\ul
\par }{\b\fs24 Methods
\par }{\b\ul
\par }\pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype}{\b
\par }\pard \fi567\widctlpar {\b CCoherenceManager()
\par }\pard \widctlpar {\b\i Remarks}{\b
\par }\pard \fi567\widctlpar Constructor : Initializes list of links, hash tables
\par
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype}{\b
\par }\pard \fi567\widctlpar {\b ~CoherenceManager()
\par }\pard \widctlpar {\b\i Remarks}{\b
\par }\pard \fi567\widctlpar Destructor destroy list of links
\par
\par \pard \widctlpar
\par {\cs16\b\fs24\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDJ_LINKMETHODS}}{\b\fs24 Link Methods}{\b\ul
\par }{\b
\par }\pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \fi-1985\li2552\widctlpar {\cs16\b\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDJ_FUNCTIONADDALINK}}{\b void m_fn_vAddALink(CPA_ReachableObject *_p_oFather,
\par }\pard \fi428\li2124\widctlpar {\b CPA_ReachableObject *_p_oChild );
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \widctlpar\tx567 \tab Add a link between the two given objects. If link already exist it\rquote s weight is increase by one. The weight of a link represent the number of times the two object are linked.
\par {\b\i Parameters
\par }\tab {\b CPA_ReachableObject *_p_oFather
\par \tab }this is the father object (it is dependent of child object )
\par
\par \tab {\b CPA_ReachableObject *_p_oChild
\par \tab }this is the child object (it is referenced by the father object )
\par
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \fi567\widctlpar {\b void m_fn_vRemoveALink(CPA_ReachableObject *_p_oFather,
\par }\pard \fi570\li2124\widctlpar {\b CPA_ReachableObject *_p_oChild );
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \widctlpar\tx567 \tab Decrease link number (weight) between the two given object, if weight drop to zero, link is removed. If link doesn\rquote t exist, the function makes nothing.
\par {\b\i Parameters
\par }\tab {\b CPA_ReachableObject *_p_oFather
\par \tab }this is the father object (it is dependent of child object )
\par
\par \tab {\b CPA_ReachableObject *_p_oChild
\par \tab }this is the child object (it is referenced by the father object )
\par
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \fi567\widctlpar {\b void m_fn_vRemoveAllLinks(CPA_ReachableObject *_p_oFather,
\par }\pard \fi570\li2124\widctlpar {\b CPA_ReachableObject *_p_oChild );
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \widctlpar\tx567 \tab Remove a link between the two given objects if exist whatever the value of link\rquote s weight.
\par {\b\i Parameters
\par }\tab {\b CPA_ReachableObject *_p_oFather
\par \tab }this is the father object (it is dependent of child object )
\par
\par \tab {\b CPA_ReachableObject *_p_oChild
\par \tab }this is the child object (it is referenced by the father object )
\par
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \fi567\widctlpar {\b void m_fn_vRemoveLinks(CPA_ReachableObject *_p_oFather,
\par }\pard \fi570\li2124\widctlpar {\b CPA_ReachableObject *_p_oChild,
\par unsigned long _ulNbLinksRemoved );
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \widctlpar\tx567 \tab Remove a certain number of links between the two given objects. If third parameter is equal or higher than the number of links\~; all links are deleted.
\par {\b\i Parameters
\par }\tab {\b CPA_ReachableObject *_p_oFather
\par \tab }this is the father object (it is dependent of child object )
\par
\par \tab {\b CPA_ReachableObject *_p_oChild
\par \tab }this is the child object (it is referenced by the father object )
\par
\par \tab {\b unsigned long _ulNbLinksRemoved
\par }\tab Number of child to be removed. If this parameter is set to zero, all links are deleted
\par
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \fi567\widctlpar\tx567 {\b unsigned long m_fn_ulGetLinkWeight( CPA_ReachableObject *_p_oFather,
\par }\pard \fi3686\widctlpar\tx567 {\b CPA_ReachableObject *_p_oChild)
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \widctlpar\tx567 \tab Return the weight(number) of links between the two gieven object
\par {\b\i Parameters
\par }\tab {\b CPA_ReachableObject *_p_oFather
\par \tab }this is the father object (it is dependent of child object )
\par
\par \tab {\b CPA_ReachableObject *_p_oChild
\par \tab }this is the child object (it is referenced by the father object )
\par {\i Return value (}{\b unsigned long )
\par }\tab number of links between the two object. If none return value is zero.{\b
\par }
\par \pard \widctlpar {\cs16\b\fs24\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDJ_OBJECTSMETHODS}}{\b\fs24 Object Methods}{\b\ul
\par }{\b
\par }\pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \fi567\widctlpar {\b void m_fn_vDeleteObject(CPA_ReachableObject *_p_oObject );
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \fi-284\li284\widctlpar\tx567 \tab \tab Set an object as a deleted object. The object isn\rquote
t really deleted, it can be restore by an undo operation by example. You can restore link with this object by calling the function m_fn_vRestoreObject describe below. If object is really destroyed (deall
ocated ) call the function m_fn_vDestroyObject. You can delete/restore an object only if reference doesn\rquote t change.
\par \tab \tab Deleting an object can generate incoherence if the deleted object is a child of another object.
\par \pard \widctlpar\tx567 {\b\i Parameters
\par }\tab {\b CPA_ReachableObject *_p_oObject
\par }\tab this is the deleted object.
\par
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \fi567\widctlpar {\b void m_fn_vRestoreObject( CPA_ReachableObject *_p_oObject );
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \fi-284\li284\widctlpar\tx567 \tab \tab Restore a previous deleted object. If deletion has cut links there are restores, and incoherence are deleted. You can restore an object only if you have deleted it with the m_fn_vDeleteObject method.
\par \pard \widctlpar\tx567 {\b\i Parameters
\par }\tab {\b CPA_ReachableObject *_p_oObject
\par }\tab Object to restore
\par
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \fi567\widctlpar {\b void m_fn_vDestroyObject( CPA_ReachableObject *_p_oObject );
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \widctlpar\tx567 {\i \tab }Indicate that referenced object is physically destroyed. All links that join an object with this one are deleted{\b\i
\par Parameters
\par }\tab {\b CPA_ReachableObject *_p_oObject
\par }\tab this is the object that is destroyed
\par
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \fi708\widctlpar {\b BOOL m_fn_bIsFather(CPA_ReachableObject *_p_oFather );
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \widctlpar\tx567 {\b\i \tab }Says if an object is linked as father with other object. In other terms if an object is registered as using other objects{\b\i
\par Parameters
\par }\tab {\b CPA_ReachableObject *_p_oFather
\par }\tab object to search as father{\b
\par }{\i Return value
\par }\tab TRUE if at least one link as this object as father, otherwise FALSE.
\par
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \fi708\widctlpar {\b BOOL m_fn_bIsChild(CPA_ReachableObject *_p_oChild );
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \widctlpar\tx567 {\b\i \tab }Says if an object is linked as child with other object. In other terms if an object is registered as used by other objects.{\b\i
\par Parameters
\par }\tab {\b CPA_ReachableObject *_p_oChild
\par }\tab object to search as child
\par {\i Return value
\par }\tab TRUE if at least one link as this object as child, otherwise FALSE.
\par
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \fi708\widctlpar {\b int m_fn_iGetChildList
\par ( \tab
\par }\pard \fi708\li708\widctlpar {\b CPA_ReachableObject *_p_oFather,
\par CList< CPA_ReachableObject *, CPA_ReachableObject *> *_p_oChildList
\par }\pard \fi708\widctlpar {\b );
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \widctlpar\tx567 {\b\i \tab }Get list of child for an object{\b\i
\par Parameters
\par }\tab {\b CPA_ReachableObject *_p_oFather
\par }\tab object for which you want to get child list.
\par {\b \tab CList< CPA_ReachableObject *, CPA_ReachableObject *> *_p_oChildList
\par \tab }pointer on list were child are put.
\par {\i Return value
\par }\tab The number of object put in list, correspond to number of child of given father object.
\par
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \fi708\widctlpar {\b int m_fn_iGetDeletedChildList
\par (
\par }\pard \fi708\li708\widctlpar {\b CPA_ReachableObject *_p_oFather,
\par CList< CPA_ReachableObject *, CPA_ReachableObject *> *_p_oDeletedChildList
\par }\pard \fi708\widctlpar {\b );}{\b\i
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \widctlpar\tx567 {\b\i \tab }Get list of deleted child for an object.{\b\i
\par Parameters
\par }\tab {\b CPA_ReachableObject *_p_oFather
\par }\tab object for which you want to get deleted child list.
\par {\b \tab CList< CPA_ReachableObject *, CPA_ReachableObject *> *_p_oDeletedChildList
\par \tab }pointer list were deleted child are put.
\par {\i Return value
\par }\tab The number of object put in list, correspond to number of deleted child of given father object.
\par
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \fi708\widctlpar {\b int m_fn_iGetDestroyedChildNameList
\par (
\par }\pard \fi708\li708\widctlpar {\b CPA_ReachableObject *_p_oFather,
\par CList< char *, char *> *_p_oDestroyedChildNameList
\par }\pard \fi708\widctlpar {\b );
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \widctlpar\tx567 {\b\i \tab }Get list of destroyed child name for an object. Because object are destroyed, you can retrieve only object\rquote s names.{\b\i
\par Parameters
\par }\tab {\b CPA_ReachableObject *_p_oFather
\par }\tab object for which you want to get destroyed child name list.
\par \pard \fi567\widctlpar {\b CList< char *, char *> *_p_oDestroyedChildNameList
\par }\pard \widctlpar\tx567 \tab pointer on list were name of destroyed childs are put.
\par {\i Return value
\par }\tab The number of object\rquote name put in list, correspond to number of destroyed child of given father object.
\par
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \fi708\widctlpar {\b int m_fn_iGetFatherList
\par (
\par \tab CPA_ReachableObject *_p_oChild,
\par }\pard \fi708\li708\widctlpar {\b CList< CPA_ReachableObject *, CPA_ReachableObject *> *_p_oFatherList
\par }\pard \fi708\widctlpar {\b );
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \widctlpar\tx567 {\b\i \tab }Get list of father for an object. {\b\i
\par Parameters
\par }\tab {\b CPA_ReachableObject *_p_oChild
\par }\tab object for which you want to get father list.
\par \pard \fi567\widctlpar {\b CList< CPA_ReachableObject *, CPA_ReachableObject *> *_p_oFatherList
\par }pointer on list were father object are put{\b
\par }\pard \widctlpar\tx567 {\i Return value
\par }\tab The number of object put in list, correspond to number of father of given child object.
\par
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \fi708\widctlpar {\b int m_fn_iGetInvalidFatherList
\par (
\par \tab CPA_ReachableObject *_p_oChild,
\par }\pard \fi708\li708\widctlpar {\b CList< CPA_ReachableObject *, CPA_ReachableObject *> *_p_oInvalidFatherList
\par }\pard \fi708\widctlpar {\b );
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \widctlpar\tx567 {\b\i \tab }Get list of invalid father for a deleted child object.{\b\i
\par Parameters
\par }\tab {\b CPA_ReachableObject *_p_oChild
\par }\tab deleted object for which you want to get invalid father list.
\par \pard \fi567\widctlpar {\b CList< CPA_ReachableObject *, CPA_ReachableObject *> *_p_oInvalidFatherList
\par }pointer on list were invalid father object are put{\b
\par }\pard \widctlpar\tx567 {\i Return value
\par }\tab The number of object put in list, correspond to number of invalid father of given child object.
\par
\par
\par \pard \widctlpar {\cs16\b\fs24\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDJ_INCOHERENCEMETHODS}}{\b\fs24 Incoherence Access Methods}{\b\ul
\par }{\b
\par }\pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \widctlpar\tx567 {\b \tab BOOL m_fn_bThereIsIncoherence( void )
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \widctlpar\tx567 {\b\i \tab }To know if there is incoherence{\b\i
\par }{\i Return Value
\par \tab }TRUE if there is at least one incoherent object, otherwise FALSE/
\par
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \widctlpar\tx567 {\b \tab void m_fn_vShowIncoherence( void )
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \widctlpar\tx567 {\b\i \tab }Display a dialog box with a list of all incoherent object.{\b\i
\par }
\par \pard \widctlpar\box\brdrsh\brdrs\brdrw15\brsp20 {\b\i Prototype
\par }\pard \widctlpar\tx567 {\b \tab BOOL m_fn_bIsIncoherent( CPA_ReachableObject *_p_oFather )
\par }\pard \widctlpar {\b\i Remarks
\par }\pard \widctlpar\tx567 {\b\i \tab }Says if an object is incoherent or not.
\par {\i Return Value
\par \tab }TRUE if object is incoherent, otherwise FALSE{\b\i
\par }\pard\plain \s1\sb240\sa60\keepn\widctlpar \b\f5\ul\kerning28 \page {\cs16\super +{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super +} PAGE_060}} {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDJ_REPORTEDBUGS}}
Reported Bugs
\par \pard\plain \widctlpar \f4\fs18 You can find in this page the not corrected bugs
\par
\par If you find a bug {\uld contact me}{\v IDP_ME}
\par
\par \pard\plain \s1\sb240\sa60\keepn\widctlpar \b\f5\ul\kerning28 \page {\cs16\super +{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super +} PAGE_070}} {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDJ_FAQ}}
Frequently Asked Questions
\par \pard\plain \widctlpar \f4\fs18 You can find in this page the frequently asked questions (none at present) with answer.
\par If you have question {\uld contact me}{\v IDP_ME }
\par
\par \pard\plain \s1\sb240\sa60\keepn\widctlpar \b\f5\ul\kerning28 \page {\cs16\super +{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super +} PAGE_080}} {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDJ_REQUEST}}
Questions And Request
\par \pard\plain \widctlpar \f4\fs18 If you have any questions, remarks or request about the Coherence Manager or even about this help {\uld call or mail me}{\v IDP_ME}. I\rquote ll try to satisfied all you desire (concerning Coherence Manager that\rquote
s go without saying).
\par \pard\plain \s1\sb240\sa60\keepn\widctlpar \b\f5\ul\kerning28 \page ******************************************* POPUPS *******************************
\par \pard\plain \widctlpar \f4\fs18 \page {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDP_ME}} \{bmc vlhullier.bmp\}
\par Vincent Lhullier
\par mail\~:\tab vlhullier@annecy.ubisoft.fr
\par phone\~:\tab 04.50.52.98.84
\par \page {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDP_FATHER}} A {\b father} is the origin of a link, it\rquote s an object that possess a reference on other object called {\uld child}{\v IDP_CHILD}
object. At first a father is coherent, all its child exist. If one of its child is deleted or destroyed it becomes incoherent.
\par \page {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDP_CHILD}} A {\b child }is the destination of a link, it\rquote s an object that is referenced by at least one other object called {\uld father}{\v IDP_FATHER}
object. If a child is deleted or destroyed, all it\rquote s father are set as incoherent.
\par \page {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDP_FATHER_ACTIVE}} When this tab is selected, the list display all coherent fathers
\par \page {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDP_FATHER_LIST}}
List of coherent father. Each root line is an object that appear as a father in a link. When you expand a branch, all linked child appear. The name between parenthesis is the name of DLL associated with Father object.
\par \page {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDP_INCOHERENCE_ACTIVE}} When this tab is selected, the list display all incoherent fathers
\par \page {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDP_INCOHERENCE_LIST}} List of incoherent fath
er. Each root line is an object that appear as a father in a link. When you expand a branch, all deleted child appear. The name between parenthesis is the name of DLL associated with Father object.
\par \page {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDP_INTERF_ALPHAORDER}} Check this radio button to have the father\rquote s list displayed in name\rquote s alphabetical order
\par \page {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDP_INTERF_INCOHERENCEORDER}} Check this radio button to have the list ordered from the father which have the most incoherence to the father which have the less incoherence
\par \page {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDP_INTERF_DLLORDER}} Check this radio button to have the list ordered by DLL Name
\par \page {\cs16\super #{\footnote \pard\plain \s15\widctlpar \f4\fs18 {\cs16\super #} IDP_INTERF_COMBODLL}}
Choosing in this combo box a DLL name, makes the list display only the Father owned by the selected DLL. If you choose the _All DLL_ entry, all fathers will be displayed.
\par
\par }

View File

@@ -0,0 +1,21 @@
; This file is maintained by HCW. Do not modify this file directly.
[OPTIONS]
HCW=0
COMPRESS=12 Hall Zeck
LCID=0x409 0x0 0x0 ;Anglais (Etats-Unis)
REPORT=Yes
CONTENTS=IDH_GENERAL
TITLE=Coherence Manager help
BMROOT=Bitmaps
HLP=..\CoheMngr.hlp
[FILES]
.\CM_help.rtf
[WINDOWS]
Normale="Coherence Manager Help",(315,52,361,584),62212,(r0),(r12632256),f3; help on coherence manager
main="",(653,102,360,600),20736,(r14876671),(r12632256),f3
[CONFIG]
BrowseButtons()