You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(42) |
Sep
(42) |
Oct
(57) |
Nov
(12) |
Dec
(47) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(14) |
Feb
(4) |
Mar
(52) |
Apr
(13) |
May
(89) |
Jun
(38) |
Jul
(5) |
Aug
(32) |
Sep
(68) |
Oct
(27) |
Nov
(2) |
Dec
(13) |
2004 |
Jan
(3) |
Feb
(6) |
Mar
(3) |
Apr
(1) |
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <no...@us...> - 2003-08-13 22:46:31
|
Log Message: ----------- Added Life Enchantment tracking from the login message Modified Files: -------------- /cvsroot/decaldev/source/DecalFilters: CharacterStats.cpp Revision Data ------------- Index: CharacterStats.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalFilters/CharacterStats.cpp,v retrieving revision 1.43 retrieving revision 1.44 diff -u -d -r1.43 -r1.44 --- CharacterStats.cpp 9 Dec 2002 22:48:50 -0000 1.43 +++ CharacterStats.cpp 13 Aug 2003 22:41:31 -0000 1.44 @@ -578,6 +578,66 @@ _variant_t vSpell1; _variant_t vEnchantment, vSpellID, vIndex, vSourceID, vDifficulty, vEffectMask, vAffected, vLevelMask, vFamily, vDuration, vTimeElapsed, vStartTime, vAdjustment; + // Get Life Enchantments + pMessage->get_Member (_variant_t ("lifeSpellCount"), &vSpellCount); + _ASSERTE(vSpellCount.vt == VT_I4); + + if(vSpellCount.vt == VT_I4) + { + pMessage->get_Member (_variant_t ("lifeSpells"), &vSpells); + _ASSERTE (vSpells.vt == VT_DISPATCH); + + if(vSpells.vt == VT_DISPATCH) + { + for(i = 0; i < (vSpellCount.lVal); i++) + { + IMessageMember* pMember = (IMessageMember*) vSpells.pdispVal; + + pMember->get_Member (_variant_t (long(i)), &vSpell1); + _ASSERTE(vSpell1.vt == VT_DISPATCH); + + if (vSpell1.vt == VT_DISPATCH) + { + IMessageMember* pRecord = (IMessageMember*) vSpell1.pdispVal; + + pRecord->get_Member (_variant_t ("enchantment"), &vEnchantment); + _ASSERTE (vEnchantment.vt == VT_DISPATCH); + + if(vEnchantment.vt != VT_DISPATCH) + break; + + IMessageMember* pEnchantment = (IMessageMember*) vEnchantment.pdispVal; + + pEnchantment->get_Member (_variant_t ("spell"), &vSpellID); + _ASSERTE(vSpellID.vt == VT_I2); + pEnchantment->get_Member (_variant_t ("source"), &vSourceID); + _ASSERTE(vSourceID.vt == VT_I4); + pEnchantment->get_Member (_variant_t ("layers"), &vIndex); + _ASSERTE(vIndex.vt == VT_I2); + pEnchantment->get_Member (_variant_t ("difficulty"), &vDifficulty); + _ASSERTE(vDifficulty.vt == VT_I4); + pEnchantment->get_Member (_variant_t ("family"), &vFamily); + _ASSERTE(vFamily.vt == VT_I4); + pEnchantment->get_Member (_variant_t ("duration"), &vDuration); + _ASSERTE(vDuration.vt == VT_R8); + pEnchantment->get_Member (_variant_t ("timeElapsed"), &vTimeElapsed); + _ASSERTE(vTimeElapsed.vt == VT_R8); + pEnchantment->get_Member (_variant_t ("startTime"), &vStartTime); + _ASSERTE(vStartTime.vt == VT_R8); + pEnchantment->get_Member (_variant_t ("flags"), &vEffectMask); + _ASSERTE(vEffectMask.vt == VT_I4); + pEnchantment->get_Member (_variant_t ("affected"), &vAffected); + _ASSERTE(vAffected.vt == VT_I4); + pEnchantment->get_Member (_variant_t ("adjustment"), &vAdjustment); + _ASSERTE(vAdjustment.vt == VT_R4); + + AddEnchant(vSpellID.iVal, vIndex.iVal, vDuration.dblVal, vFamily.lVal, vTimeElapsed.dblVal, vEffectMask.lVal, vAffected.lVal, vAdjustment.fltVal); + } + } + } + } // vSpellCount.vt == VT_I4 + + // Get Creature Enchantments pMessage->get_Member (_variant_t ("creatureSpellCount"), &vSpellCount); _ASSERTE(vSpellCount.vt == VT_I4); |
From: <no...@us...> - 2003-08-13 05:23:05
|
Log Message: ----------- Remove files from cvs - no longer needed Removed Files: ------------- /cvsroot/decaldev/source/Installer/Res: delegate.dll HRESULTHookSrv.dll Revision Data ------------- --- delegate.dll DELETED --- --- HRESULTHookSrv.dll DELETED --- |
From: <no...@us...> - 2003-08-06 01:21:18
|
Log Message: ----------- Fixed my decal container yet again..cuz i broke it last change Modified Files: -------------- /cvsroot/decaldev/source/Inject: Manager.cpp Revision Data ------------- Index: Manager.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Manager.cpp,v retrieving revision 1.73 retrieving revision 1.74 diff -u -d -r1.73 -r1.74 --- Manager.cpp 21 Jul 2003 19:11:22 -0000 1.73 +++ Manager.cpp 6 Aug 2003 01:21:17 -0000 1.74 @@ -420,7 +420,7 @@ } // Return if there is no 3D Device - if( m_p3DDevice == NULL ) + if( m_p3DDevice == NULL && !m_bContainer ) return ::CallWindowProc( m_pfnOld, m_hMain, uMsg, wParam, lParam ); if( uMsg >= WM_MOUSEFIRST && uMsg < WM_MOUSELAST ) |
From: <no...@us...> - 2003-08-01 05:43:06
|
Log Message: ----------- doxygen project file Added Files: ----------- /cvsroot/decaldev/source/doxygen: doxyproject Revision Data ------------- --- NEW FILE: doxyproject --- # Doxyfile 1.3.3 #--------------------------------------------------------------------------- # General configuration options #--------------------------------------------------------------------------- PROJECT_NAME = Decal PROJECT_NUMBER = OUTPUT_DIRECTORY = OUTPUT_LANGUAGE = English USE_WINDOWS_ENCODING = YES EXTRACT_ALL = YES EXTRACT_PRIVATE = NO EXTRACT_STATIC = NO EXTRACT_LOCAL_CLASSES = YES HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = NO HIDE_FRIEND_COMPOUNDS = NO HIDE_IN_BODY_DOCS = NO BRIEF_MEMBER_DESC = YES REPEAT_BRIEF = YES ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO FULL_PATH_NAMES = NO STRIP_FROM_PATH = INTERNAL_DOCS = NO CASE_SENSE_NAMES = YES SHORT_NAMES = NO HIDE_SCOPE_NAMES = NO SHOW_INCLUDE_FILES = YES JAVADOC_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO DETAILS_AT_TOP = NO INHERIT_DOCS = YES INLINE_INFO = YES SORT_MEMBER_DOCS = YES DISTRIBUTE_GROUP_DOC = NO TAB_SIZE = 8 GENERATE_TODOLIST = YES GENERATE_TESTLIST = YES GENERATE_BUGLIST = YES GENERATE_DEPRECATEDLIST= YES ALIASES = ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 OPTIMIZE_OUTPUT_FOR_C = NO OPTIMIZE_OUTPUT_JAVA = NO SHOW_USED_FILES = YES SUBGROUPING = YES #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- QUIET = NO WARNINGS = YES WARN_IF_UNDOCUMENTED = YES WARN_IF_DOC_ERROR = YES WARN_FORMAT = "$file:$line: $text" WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- INPUT = C:\source\ FILE_PATTERNS = *.cpp \ *.h \ *.idl RECURSIVE = YES EXCLUDE = EXCLUDE_SYMLINKS = NO EXCLUDE_PATTERNS = EXAMPLE_PATH = EXAMPLE_PATTERNS = EXAMPLE_RECURSIVE = NO IMAGE_PATH = INPUT_FILTER = FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- SOURCE_BROWSER = YES INLINE_SOURCES = NO STRIP_CODE_COMMENTS = YES REFERENCED_BY_RELATION = YES REFERENCES_RELATION = YES VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = NO COLS_IN_ALPHA_INDEX = 5 IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- GENERATE_HTML = YES HTML_OUTPUT = html HTML_FILE_EXTENSION = .html HTML_HEADER = HTML_FOOTER = HTML_STYLESHEET = HTML_ALIGN_MEMBERS = YES GENERATE_HTMLHELP = NO CHM_FILE = HHC_LOCATION = GENERATE_CHI = NO BINARY_TOC = NO TOC_EXPAND = NO DISABLE_INDEX = NO ENUM_VALUES_PER_LINE = 4 GENERATE_TREEVIEW = NO TREEVIEW_WIDTH = 249 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- GENERATE_LATEX = NO LATEX_OUTPUT = latex LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex COMPACT_LATEX = NO PAPER_TYPE = a4wide EXTRA_PACKAGES = LATEX_HEADER = PDF_HYPERLINKS = NO USE_PDFLATEX = NO LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- GENERATE_RTF = NO RTF_OUTPUT = rtf COMPACT_RTF = NO RTF_HYPERLINKS = NO RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- GENERATE_MAN = NO MAN_OUTPUT = man MAN_EXTENSION = .3 MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- GENERATE_XML = NO XML_OUTPUT = xml XML_SCHEMA = XML_DTD = #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- GENERATE_PERLMOD = NO PERLMOD_LATEX = NO PERLMOD_PRETTY = YES PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- ENABLE_PREPROCESSING = YES MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = PREDEFINED = EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::addtions related to external references #--------------------------------------------------------------------------- TAGFILES = GENERATE_TAGFILE = ALLEXTERNALS = NO EXTERNAL_GROUPS = YES PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- CLASS_DIAGRAMS = YES HIDE_UNDOC_RELATIONS = YES HAVE_DOT = NO CLASS_GRAPH = YES COLLABORATION_GRAPH = YES UML_LOOK = NO TEMPLATE_RELATIONS = NO INCLUDE_GRAPH = YES INCLUDED_BY_GRAPH = YES CALL_GRAPH = NO GRAPHICAL_HIERARCHY = YES DOT_IMAGE_FORMAT = png DOT_PATH = "C:/Program Files/ATT/Graphviz/bin/" DOTFILE_DIRS = MAX_DOT_GRAPH_WIDTH = 1024 MAX_DOT_GRAPH_HEIGHT = 1024 MAX_DOT_GRAPH_DEPTH = 0 GENERATE_LEGEND = YES DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::addtions related to the search engine #--------------------------------------------------------------------------- SEARCHENGINE = NO CGI_NAME = search.cgi CGI_URL = DOC_URL = DOC_ABSPATH = BIN_ABSPATH = /usr/local/bin/ EXT_DOC_PATHS = |
From: <no...@us...> - 2003-08-01 05:42:40
|
Log Message: ----------- update source code with doxygen comments Modified Files: -------------- /cvsroot/decaldev/source/DecalFilters: CharacterStats.h Revision Data ------------- Index: CharacterStats.h =================================================================== RCS file: /cvsroot/decaldev/source/DecalFilters/CharacterStats.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- CharacterStats.h 9 Dec 2002 22:48:52 -0000 1.17 +++ CharacterStats.h 1 Aug 2003 05:42:39 -0000 1.18 @@ -12,6 +12,14 @@ ///////////////////////////////////////////////////////////////////////////// // cCharacterStats +//! cCharacterStats is the filter class used to monitor network traffic relating to your character's stats. +/*! + The Character Stats filter is a handy way of getting hold of many of your character's stats. It functions + by monitoring all the network traffic relating to your character's stats, vitae, etc. It is still the definitive + source of stat information in Decal, but if you are looking for something simple (like just one stat) you might + want to look at ACHooks first; ACHooks now has some hooks that replace the functionality of this filter for + Attributes/Vitals/Skills more reliably. +*/ class ATL_NO_VTABLE cCharacterStats : public CComObjectRootEx<CComMultiThreadModel>, public CComCoClass<cCharacterStats, &CLSID_CharacterStats>, @@ -42,18 +50,33 @@ public: + //! The Location_t structure is used by the Character Stats filter for storing information about your character's location. struct Location_t { - DWORD landblock; //turbine - float x,y,z; //cartesian (relative to LB) - float a,b,c,w; //quaternion + //! Turbine-assigned landblock number (like using /loc). + DWORD landblock; + //! Coordinate offset to landblock base coordinates. + float x,y,z; + //! Component of the location quaternion. + float a,b,c,w; }; + //! The cEnchantment structure is used by the Character Stats filter for storing information about an enchantment. struct cEnchantment { - int iSpellID, iLayer; + //! The SpellID, unique to each spell. Can be found in Turbine's portal.dat. + int iSpellID; + //! The spell's layer. That is, a spell that "surpasses" another spell has a higher layer, so the highest layer is the "active" spell. + int iLayer; + //! A standard C++ time_t object representing the time at which this spell expires. time_t ExpireTime; - DWORD dwAffected, dwAffectMask, dwFamily; + //! Stored value representing what this spell affects (what skill/attribute/etc). + DWORD dwAffected; + //! Stored value obtained from the protocol. I forget what it represents. + DWORD dwAffectMask; + //! Stored value representing what "family" or grouping of spells this spell belongs to. Families may be found in the portal.dat. + DWORD dwFamily; + //! The actual adjustment that is the result of the spell. For instance, the value for Creature Enchantment Mastery VI would be 35. float fAdjustment; cEnchantment() @@ -88,95 +111,236 @@ } }; + //! The cSkillInfo structure is generated for each skill your character has to store information on that skill. struct cSkillInfo { + //! The skill's "friendly" name (i.e. - "War Magic") std::string m_szName; - long m_nAttribute1, - m_nAttribute2; + //! The index number of the first attribute that this skill is derived from. + long m_nAttribute1; + //! The index number of the second attribute that this skill is derived from. + long m_nAttribute2; + //! The divisor for the skill. For example, War Magic is Focus + Self / 4, so the denominator is 4. long m_nDenominator; - long m_nOffset, - m_nExp, - m_nBonus; + //! The skill's offset from the "formula base." Think of this as the number of times you incremented the skill directly. + long m_nOffset; + //! The amount of experience put into this skill directly. + long m_nExp; + //! The bonus added to this skill (+10 for a specialized skill, +5 for a creation-time train). + long m_nBonus; + //! The way this skill is trained (i.e. - "Untrained," "Trained," or "Specialized") represented by the enumeration eTrainingType. eTrainingType m_trained; }; + //! The cAttributeInfo structure is generated for each attribute your character has to store information on the attribute. struct cAttributeInfo { + //! The attribute's "friendly" name (i.e. - "Strength") std::string m_szName; - long m_nBase, - m_nExp, - m_nCurrent; + //! The attribute's "base" value, or value before buffs. + long m_nBase; + //! The amount of experience applied to this attribute. + long m_nExp; + //! The adjusted value of the attribute taking (de)buffs into effect. + long m_nCurrent; }; + //! The cAllegianceInfo structure is generated for each allegiance contact your character has to store information on that character. struct cAllegianceInfo { + //! The GUID of this character's Patron. long TreeParent; + //! This character's GUID. long GUID; + //! The node type for this entry in relation to your character. long Type; + //! The amount of xp you have passed up to this character/this character has passed to you. long XP; - long Gender, Race, Rank; - long Loyalty, Leadership; + //! The character's gender. + long Gender; + //! The character's race. + long Race; + //! The character's allegiance rank. + long Rank; + //! The character's loyalty (as of the moment the data was received--when the allegiance panel was opened, including buffs). + long Loyalty; + //! The character's leadership (as of the moment the data was received--when the allegiance panel was opened, including buffs). + long Leadership; + //! Some unknown in the protocol. It's stored here so you can experiment with it! double Unknown; + //! The character's name. char Name[32]; }; private: + //! An internal pointer to decal's NetService interface. CComPtr< INetService > m_pService; + //! An internal pointer to decal's main interface. CComPtr< IDecal > m_pDecal; //Bases + //! Whether or not we've received login information for a character yet + /*! + Initially set to false, GotLogin is used internally to represent whether we've + received login information for a character yet. Functions check this variable + before doing any processing so that they may intentionally error as there is no + information on the user's character before login information is received. + \sa GotAlleg + */ bool GotLogin; + //! Our character's GUID. DWORD GUID; - char Name[32], Gender[32], Race[32], Class[32]; + //! Our character's name. + char Name[32]; + //! Our character's gender. + char Gender[32]; + //! Our character's race. + char Race[32]; + //! Our character's class/title. + char Class[32]; public: - DWORD PrimStat[6], PrimStatInitial[6]; + // DWORD array representing the values of our character's primary attributes. + DWORD PrimStat[6]; + // DWORD array representing the initial (creation) values of your character's primary attributes. + DWORD PrimStatInitial[6]; + // DWORD array representing the number of times our vitals have been directly incremented. DWORD SecStatInc[3]; - DWORD SkillInc[40], SkillTrain[40]; - DWORD SkillXP[40], SkillBonus[40]; + // DWORD array representing the number of times our skills have been directly incremented. + DWORD SkillInc[40]; + // DWORD array representing the training status of each skill. (Current protocol: 1 = Untrained/Unusable, 2 = Trained, 3 = Specialized) + DWORD SkillTrain[40]; + // DWORD array representing the amount of experience applied directly to each skill. + DWORD SkillXP[40]; + // DWORD array representing the bonus each skill receives (+10 for specialization, +5 for creation-time train). + DWORD SkillBonus[40]; private: + //! An internal list used to store all the enchantments on the character. std::list< cEnchantment * > Enchantments; - DWORD TotalBurden, TotalPyreal, TotalXP, UnassignedXP, SkillPoints, Level, Rank; + //! Internal storage for our character's total burden. + DWORD TotalBurden; + //! Internal storage for the number of pyreals our character owns. + DWORD TotalPyreal; + //! Internal storage for our character's total experience. + DWORD TotalXP; + //! Internal storage for our character's unsassigned experience. + DWORD UnassignedXP; + //! Internal storage for the number of skill points our character has available. + DWORD SkillPoints; + //! Internal storage for our character's level. + DWORD Level; + //! Internal storage for our character's allegiance rank. + DWORD Rank; + //! Internal storage for our character's burden percentage. (0-300%) float Burden; + //! Internal Location_t for storing our character's location. Location_t Location; //Current Stuff - DWORD CurStat[6], CurSecStat[3]; + //! Internal storage for our character's "current" or "adjusted" attributes. + DWORD CurStat[6]; + //! Internal storage for our character's "current" or "adjusted" vitals. + DWORD CurSecStat[3]; + //! Internal storage for our character's "current" or "adjusted" skills. DWORD CurSkill[40]; - double DrainRange, HarmRange; + //! Internal storage originally allocated for our character's drain spell range. (Note by Eckzow on 7-31-03: I can't find record of this being set to anything useful...) + double DrainRange; + //! Internal storage originally allocated for our character's harm spell range. (Note by Eckzow on 7-31-03: I can't find record of this being set to anything useful...) + double HarmRange; - int Health, Stamina, Mana; + //! Internal storage allocated for our character's current number of health points. + int Health; + //! Internal storage allocated for our character's current number of stamina points. + int Stamina; + //! Internal storage allocated for our character's current number of mana points. + int Mana; + //! Internal storage for our percantage of vitae. float Vitae; void __stdcall onMessage(IMessage* pMsg); - + //! Internal function to add a spell to our (also internal) list of enchantments on the character. void AddEnchant(int SpellID, int Layer, double Duration, DWORD Family, double Elapsed, DWORD AffectMask, DWORD Affected, float Adjustment); + //! Internal function called to remove a spell from our (also internal) list of enchantments on the character. void RemoveEnchant(int SpellID, int Layer); + //! Internal function to trigger a recalculation of a specific stat. + /*! + \sa RecalcSecStat(), RecalcSkill() + \param Stat Index of the stat to be recalculated. + */ void RecalcStat(int Stat); + //! Internal function to trigger a recalculation of all our character's vitals. + /*! + This function is necessary to keep our "adjusted" values up to date as an enchantment is cast, a spell expires, the user increments + their stat, etc. + \sa RecalcSkills() + */ void RecalcSecStats(); + //! Internal function to trigger a recalculation of a specific vital. + /*! + \sa RecalcStat(), RecalcSkill() + \param SecStat Index of the vital to be recalculated. + */ void RecalcSecStat(int SecStat); + //! Internal function to trigger a recalculation of all our character's skills. + /*! + This function is necessary to keep our "adjusted" values up to date as an enchantment is cast, a spell expires, the user increments + their stat, etc. + \sa RecalcSecStats() + */ void RecalcSkills(); + //! Internal function to trigger a recalculation of a specific skill. + /*! + \sa RecalcSecStat(), RecalcSkill() + \param Skill Index of the skill to be recalculated. + */ void RecalcSkill(int Skill); //Other + //! Internal storage for the name of the server we're on. char Server[50]; + //! Internal storage for the id's of spells we've learned. std::set< DWORD > SpellsLearned; - cAllegianceInfo Monarch, Patron, MyAlleg, Vassals[12]; + //! Internal storage for our monarch's allegiance information. + cAllegianceInfo Monarch; + //! Internal storage for our patron's allegiance information. + cAllegianceInfo Patron; + //! Internal storage for our own allegiance information. + cAllegianceInfo MyAlleg; + //! Internal storage array for each vassal's allegiance information. + cAllegianceInfo Vassals[12]; + //! Internal storage for the number of vassals our character has. int VassalCount; - DWORD Followers, MonarchFollowers; + //! Internal storage for the number of followers you specifically have. + DWORD Followers; + //! Internal storage for the number of followers your monarchy has. + DWORD MonarchFollowers; + //! Whether or not we've received allegiance information for our character yet + /*! + Initially set to false, GotAlleg is used internally to represent whether we've + received allegiance information for a character yet. Functions involving allegiance + check this variable before doing any processing so that they may intentionally error + as there is no allegiance information for the user's character before an allegiance + information packet is received. + \sa GotLogin + */ bool GotAlleg; - DWORD Deaths, Birth, Age; + //! Internal storage for the number of deaths our character has. + DWORD Deaths; + //! Internal storage for the number of birthes our character has. + DWORD Birth; + //! Internal storage for the age of our characters (like /age this should not be taken as the gospel truth as it can be off by quite a bit) + DWORD Age; public: STDMETHOD(Initialize)(INetService *pService); @@ -185,58 +349,280 @@ STDMETHOD(DispatchClient)(IMessage2 *); //Old Stuff + //! Function to get the number of spells our character has learned. + /*! + \param pVal Pointer to a long where the number of spells can be stored. + \return E_FAIL if the character has not yet logged in, otherwise S_OK. + \sa get_SpellLearned() + */ STDMETHOD(get_TotalSpells)(/*[out, retval]*/ long *pVal); + //! Function to find out if a specific spell is known to our character or not. + /*! + \param SpellID The id of the spell (from portal.dat) that you wish to check. + \param pVal Pointer to a long where the status of the spell will be stored. pVal is set equal to false (0) if the spell is unknown or true (1) if it is. + \return E_FAIL if the character is not logged in or if the spellID supplied was invalid. If sucessful, S_OK is returned. pVal will also be set to -1 if the spell id was invalid. + \sa get_TotalSpells() + */ STDMETHOD(get_SpellLearned)(long SpellID, /*[out, retval]*/ long *pVal); // ICharacterStats + //! Function to get the class/title of our character. + /*! + \param pVal Pointer to a BSTR object where the class/title of the character may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_ClassTemplate)(/*[out, retval]*/ BSTR *pVal); + //! Function to get the gender of our character. + /*! + \param pVal Pointer to a BSTR object where the gender of the character may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_Gender)(/*[out, retval]*/ BSTR *pVal); + //! Function to get the race of our character. + /*! + \param pVal Pointer to a BSTR object where the race of the character may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_Race)(/*[out, retval]*/ BSTR *pVal); + //! Function to get the name of our character. + /*! + \param pVal Pointer to a BSTR object where the name of the character may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_Name)(/*[out, retval]*/ BSTR *pVal); + //! Function to get the server our character is on. + /*! + \param pVal Pointer to a BSTR object where the name of the server our character is on may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_Server)(/*[out, retval]*/ BSTR *pVal); + //! Function to get the number of skill points available to our character. + /*! + \param pVal Pointer to a long where the number of skill points may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_SkillPoints)(/*[out, retval]*/ long *pVal); + //! Function to get the amount of unassigned experience available to our character. + /*! + \param pVal Pointer to a long where the number of unassigned experience points may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_UnassignedExp)(/*[out, retval]*/ long *pVal); + //! Function to get the amound of total experience our character has earned. + /*! + \param pVal Pointer to a long where the number experience points our character has earned may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_TotalExp)(/*[out, retval]*/ long *pVal); + //! Function to get our character's allegiance rank. + /*! + \param pVal Pointer to a long where our character's allegiance rank may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_Rank)(/*[out, retval]*/ long *pVal); + //! Function to get our character's level. + /*! + \param pVal Pointer to a long where our character's level may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_Level)(/*[out, retval]*/ long *pVal); + //! Function to get our character's GUID. + /*! + \param pVal Pointer to a long where our character's GUID may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_Character)(/*[out, retval]*/ long *pVal); + //! Function to get the number of vitals that the filter is storing information for. + /*! + \param pVal Pointer to a long where the number of vitals the filter is tracking may be stored. + \return S_OK if successful. + */ STDMETHOD(get_VitalCount)(/*[out, retval]*/ long *pVal); + //! Function to get the number of skills that the filter is storing information for. + /*! + \param pVal Pointer to a long where the number of skills the filter is tracking may be stored. + \return S_OK if successful. + */ STDMETHOD(get_SkillCount)(/*[out, retval]*/ long *pVal); + //! Function to get the number of attributes that the filter is storing information for. + /*! + \param pVal Pointer to a long where the number of attributes the filter is tracking may be stored. + \return S_OK if successful. + */ STDMETHOD(get_AttributeCount)(/*[out, retval]*/ long *pVal); + //! Function to get information on a given vital. + /*! + Using get_Vital to get in-depth information on a vital statistic is approved, however + the function has been deprecated for simply getting the vital's value/it's base by the new + GetVital ACHooks. + \param Index A member of the eVitalID enumeration representing which vital you wish to obtain information for. + \param pVal A pointer to an ISkillInfo in which the vital's information may be stored. + \return E_FAIL if the character is not logged in or if the Index parameter is out of range, otherwise the result of the ISkillInfo's QueryInterface. + */ STDMETHOD(get_Vital)(enum eVitalID Index, /*[out, retval]*/ ISkillInfo ** pVal); + //! Function to get information on a given skill. + /*! + Using get_Skill to get in-depth information on a skill is approved, however + the function has been deprecated for simply getting the skill's value/it's base by the new + GetSkill ACHooks. + \param Index A member of the eSkillID enumeration representing which skill you wish to obtain information for. + \param pVal A pointer to an ISkillInfo in which the vital's information may be stored. + \return E_FAIL if the character is not logged in or if the Index parameter is out of range, otherwise the result of the ISkillInfo's QueryInterface. + */ STDMETHOD(get_Skill)(enum eSkillID Index, /*[out, retval]*/ ISkillInfo ** pVal); + //! Function to get information on a given attribute. + /*! + Using get_Attribute to get in-depth information on an attribute is approved, however + the function has been deprecated for simply getting the attribute's value/it's base by the new + GetAttribute ACHooks. + \param Index A member of the eAttributeID enumeration representing which vital you wish to obtain information for. + \param pVal A pointer to an IAttributeInfo in which the vital's information may be stored. + \return E_FAIL if the character is not logged in or if the Index parameter is out of range, otherwise the result of the IAttributeInfo's QueryInterface. + */ STDMETHOD(get_Attribute)(enum eAttributeID Index, /*[out, retval]*/ IAttributeInfo ** pVal); //New Stuff + //! Function to get the allegiance information for your monarch. + /*! + \param pVal Pointer to an IAllegianceInfo into which the monarch's information may be stored. + \return E_FAIL if an allegiance information packet has not been received or you have no monarch, otherwise the result of the IAllegianceInfo's QueryInterface. + */ STDMETHOD(get_Monarch)(IAllegianceInfo ** pVal); + //! Function to get the allegiance information for your patron. + /*! + \param pVal Pointer to an IAllegianceInfo into which your patron's information may be stored. + \return E_FAIL if an allegiance information packet has not been received or you have no patron, otherwise the result of the IAllegianceInfo's QueryInterface. + */ STDMETHOD(get_Patron)(IAllegianceInfo ** pVal); + //! Function to get the allegiance information for your character. + /*! + \param pVal Pointer to an IAllegianceInfo into which the character's information may be stored. + \return E_FAIL if an allegiance information packet has not been received or is invalid, otherwise the result of the IAllegianceInfo's QueryInterface. + */ STDMETHOD(get_MyAllegiance)(IAllegianceInfo ** pVal); + //! Function to get the allegiance information for one of your vassals. + /*! + \param VassalNum A long signifying the zero-based index of the vassal who's information you wish to retrieve. + \param pVal Pointer to an IAllegianceInfo into which your vassal's information may be stored. + \return E_FAIL if an allegiance information packet has not been received, the index you supplied was invalid, or you have no vassal at that index. Otherwise the result of the IAllegianceInfo's QueryInterface is returned. + */ STDMETHOD(get_Vassal)(long VassalNum, IAllegianceInfo ** pVal); + //! Function to get the number of vassals your character has. + /*! + \param pVal Pointer to a long into which the number of vassals may be stored. + \return E_FAIL if an allegiance information packet has not been received, otherwise S_OK. + */ STDMETHOD(get_VassalCount)(long *pVal); + //! Function to get the number of followers your character has. + /*! + \param pVal Pointer to a long into which the number of followers may be stored. + \return E_FAIL if an allegiance information packet has not been received, otherwise S_OK. + */ STDMETHOD(get_Followers)(long *pVal); + //! Function to get the number of followers your monarchy has. + /*! + \param pVal Pointer to a long into which the number of followers may be stored. + \return E_FAIL if an allegiance information packet has not been received, otherwise S_OK. + */ STDMETHOD(get_MonarchFollowers)(long *pVal); + //! Function to get our character's birthtime. + /*! + \param pVal Pointer to a long where our character's birthtime (UNIX time) may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_Birth)(long *pVal); + //! Function to get our character's age. + /*! + \param pVal Pointer to a long where our character's age (in seconds) may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_Age)(long *pVal); + //! Function to get our character's death count. + /*! + \param pVal Pointer to a long where the number of times our character has died may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_Deaths)(long *pVal); + //! Function to get our character's current Health. + /*! + \param pVal Pointer to a long where our character's current Health may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_Health)(long *pVal); + //! Function to get our character's current Stamina. + /*! + \param pVal Pointer to a long where our character's current Stamina may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_Stamina)(long *pVal); + //! Function to get our character's current Mana. + /*! + \param pVal Pointer to a long where our character's current Mana may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_Mana)(long *pVal); + //! Function to get the number of enchantments currently affecting our character. + /*! + \param pVal Pointer to a long where the number of enchantments may be stored. + \return E_FAIL if the character is not yet logged in, else S_OK. + */ STDMETHOD(get_EnchantmentCount)(long *pVal); + //! Function to get detailed information on an enchantment. + /*! + \param EnchantNum Zero-based index of the enchantment you wish to get information for. + \param pVal Pointer to an IEnchantment where the enchantment's information may be stored. + */ STDMETHOD(get_Enchantment)(long EnchantNum, IEnchantment **pVal); + //! Function to get the value of a given vital. + /*! + Usage of this function has been deprecated due to the release of the new GetVital ACHook. + \param Index A member of the eVitalID enumeration representing which vital you wish to obtain the value of. + \param pVal A pointer to a long where the vital's value may be stored. + \return E_FAIL if the character is not logged in or if the Index parameter is out of range, otherwise S_OK. + */ STDMETHOD(get_EffectiveVital)(enum eVitalID Index, /*[out, retval]*/ long *pVal); + //! Function to get the value of a given skill. + /*! + Usage of this function has been deprecated due to the release of the new GetSkill ACHook. + \param Index A member of the eSkillID enumeration representing which skill you wish to obtain the value of. + \param pVal A pointer to a long where the skill's value may be stored. + \return E_FAIL if the character is not logged in or if the Index parameter is out of range, otherwise S_OK. + */ STDMETHOD(get_EffectiveSkill)(enum eSkillID Index, /*[out, retval]*/ long *pVal); + //! Function to get the value of a given attribute. + /*! + Usage of this function has been deprecated due to the release of the new GetAttribute ACHook. + \param Index A member of the eAttributeID enumeration representing which vital you wish to obtain the value of. + \param pVal A pointer to a long where the attribute's value may be stored. + \return E_FAIL if the character is not logged in or if the Index parameter is out of range, otherwise S_OK. + */ STDMETHOD(get_EffectiveAttribute)(enum eAttributeID Index, /*[out, retval]*/ long * pVal); + //! Function to get our character's vitae percentage. + /*! + \param pVal Pointer to a long where the percentage vitae penalty our character has aquired may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_Vitae)(/*[out, retval]*/ long *pVal); + //! Function to get our character's current number of burden units. + /*! + \param pVal Pointer to a long where the number of burden units our character is carrying may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_BurdenUnits)(/*[out, retval]*/ long *pVal); + //! Function to get our character's burden percentage. + /*! + \param pVal Pointer to a long where our character's current burden percentage may be stored. + \return E_FAIL if the character is not logged in, otherwise S_OK. + */ STDMETHOD(get_Burden)(/*[out, retval]*/ long *pVal); }; |
From: <no...@us...> - 2003-08-01 05:24:00
|
Update of /cvsroot/decaldev/source/doxygen/html In directory sc8-pr-cvs1:/tmp/cvs-serv31844/html Log Message: Directory /cvsroot/decaldev/source/doxygen/html added to the repository |
From: <no...@us...> - 2003-08-01 05:21:26
|
Update of /cvsroot/decaldev/source/doxygen In directory sc8-pr-cvs1:/tmp/cvs-serv31485/doxygen Log Message: Directory /cvsroot/decaldev/source/doxygen added to the repository |
From: <no...@us...> - 2003-07-25 00:12:43
|
Log Message: ----------- Change get_Data to return -1 instead of asserting on some stuff Modified Files: -------------- /cvsroot/decaldev/source/DecalControls: Choice.cpp Revision Data ------------- Index: Choice.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalControls/Choice.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Choice.cpp 24 Jul 2002 03:56:34 -0000 1.3 +++ Choice.cpp 25 Jul 2003 00:12:42 -0000 1.4 @@ -271,11 +271,17 @@ STDMETHODIMP cChoice::get_Data(long nIndex, VARIANT *pVal) { - _ASSERTE( nIndex >= 0 ); - _ASSERTE( nIndex < m_options.size() ); - _ASSERTE( pVal != NULL ); + if( pVal == NULL ) + return E_POINTER; - ::VariantCopy( pVal, &m_options[ nIndex ].m_value ); + if( nIndex < 0 || nIndex > m_options.size() ) + { + pVal->lVal = -1; + pVal->vt = VT_I4; + } + + else + ::VariantCopy( pVal, &m_options[ nIndex ].m_value ); return S_OK; } |
From: <no...@us...> - 2003-07-25 00:11:06
|
Log Message: ----------- uh. yeah. Modified Files: -------------- /cvsroot/decaldev/source/DenAgent: OptionsDlg.cpp Revision Data ------------- Index: OptionsDlg.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DenAgent/OptionsDlg.cpp,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- OptionsDlg.cpp 24 Jul 2003 21:59:07 -0000 1.20 +++ OptionsDlg.cpp 25 Jul 2003 00:11:05 -0000 1.21 @@ -278,7 +278,6 @@ DWORD dwViewMode = 0; if( ::SendMessage(GetDlgItem(IDC_OLDINJECT)->m_hWnd, BM_GETCHECK, 0, 0) ) { - MessageBox( "GotCheck", "DA", MB_OK ); if( key.QueryDWORDValue( "OldInjection", dwViewMode ) == ERROR_SUCCESS ) { if( dwViewMode != 1 ) @@ -297,7 +296,6 @@ else { - MessageBox( "NoCheck", "DA", MB_OK ); if( key.QueryDWORDValue( "OldInjection", dwViewMode ) == ERROR_SUCCESS ) if( dwViewMode != 0 ) { |
From: <no...@us...> - 2003-07-24 21:59:08
|
Log Message: ----------- Bugfix: Old injection checkbox not working Modified Files: -------------- /cvsroot/decaldev/source/DenAgent: OptionsDlg.cpp Revision Data ------------- Index: OptionsDlg.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DenAgent/OptionsDlg.cpp,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- OptionsDlg.cpp 20 Jun 2003 06:41:19 -0000 1.19 +++ OptionsDlg.cpp 24 Jul 2003 21:59:07 -0000 1.20 @@ -276,19 +276,29 @@ // cbt hook injection DWORD dwViewMode = 0; - if(::SendMessage(GetDlgItem(IDC_OLDINJECT)->m_hWnd, BM_GETCHECK, 0, 0)) + if( ::SendMessage(GetDlgItem(IDC_OLDINJECT)->m_hWnd, BM_GETCHECK, 0, 0) ) { - if( key.QueryDWORDValue( "OldInjection", dwViewMode )== ERROR_SUCCESS ) + MessageBox( "GotCheck", "DA", MB_OK ); + if( key.QueryDWORDValue( "OldInjection", dwViewMode ) == ERROR_SUCCESS ) + { if( dwViewMode != 1 ) { key.SetDWORDValue("OldInjection", 0x1L); MessageBox( "You must restart DenAgent for this option to take effect!", "DenAgent", MB_OK ); } + } + + else + { + key.SetDWORDValue("OldInjection", 0x1L); + MessageBox( "You must restart DenAgent for this option to take effect!", "DenAgent", MB_OK ); + } } else { - if( key.QueryDWORDValue( "OldInjection", dwViewMode )== ERROR_SUCCESS ) + MessageBox( "NoCheck", "DA", MB_OK ); + if( key.QueryDWORDValue( "OldInjection", dwViewMode ) == ERROR_SUCCESS ) if( dwViewMode != 0 ) { key.SetDWORDValue("OldInjection", 0x0L); |
From: <no...@us...> - 2003-07-24 21:58:25
|
Log Message: ----------- Updated ForceLibrary directory; installer sets old injection off since it should work properly now for everyone. Modified Files: -------------- /cvsroot/decaldev/source/DecalInstaller: DecalInstaller.vdproj Revision Data ------------- Index: DecalInstaller.vdproj =================================================================== RCS file: /cvsroot/decaldev/source/DecalInstaller/DecalInstaller.vdproj,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- DecalInstaller.vdproj 23 Jun 2003 11:05:05 -0000 1.12 +++ DecalInstaller.vdproj 24 Jul 2003 21:58:23 -0000 1.13 @@ -34,6 +34,12 @@ "Entry" { "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8" + "OwnerKey" = "8:_F7B461AAFB7641F699DAEAF49904A662" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8" "OwnerKey" = "8:_BD4EC7DFE26A40BA84001249533EC862" "MsmSig" = "8:_UNDEFINED" } @@ -52,6 +58,18 @@ "Entry" { "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8" + "OwnerKey" = "8:_8E9B4D574D014738B94369502A191459" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8" + "OwnerKey" = "8:_287894F290604710B0E99CD646021261" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8" "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940" "MsmSig" = "8:_UNDEFINED" } @@ -88,11 +106,23 @@ "Entry" { "MsmKey" = "8:_41F2E99B0C1B72CFD51382D5E140A7E8" + "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_41F2E99B0C1B72CFD51382D5E140A7E8" "OwnerKey" = "8:_A03B9AE58553491581FA0975DF6E6E88" "MsmSig" = "8:_UNDEFINED" } "Entry" { + "MsmKey" = "8:_41F2E99B0C1B72CFD51382D5E140A7E8" + "OwnerKey" = "8:_287894F290604710B0E99CD646021261" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_422DA789643D4CFC8308DBB6EB58ED8B" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -147,8 +177,44 @@ } "Entry" { - "MsmKey" = "8:_A8236153441A4A2295B6EB7344BAF9E6" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_A363B66FCAE3DB5C7CECA058D6C5B2B4" + "OwnerKey" = "8:_287894F290604710B0E99CD646021261" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_A6E2165DAF724B38BD8B951949C710F5" + "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_A6E2165DAF724B38BD8B951949C710F5" + "OwnerKey" = "8:_A03B9AE58553491581FA0975DF6E6E88" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_A6E2165DAF724B38BD8B951949C710F5" + "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_AB8B779E801448568C9C2869BFA349A8" + "OwnerKey" = "8:_287894F290604710B0E99CD646021261" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_AB8B779E801448568C9C2869BFA349A8" + "OwnerKey" = "8:_E256A97055264EB5B195F1414117D027" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_AB8B779E801448568C9C2869BFA349A8" + "OwnerKey" = "8:_673044C5656142EBAA86D07A36EFFF5A" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -189,32 +255,68 @@ } "Entry" { - "MsmKey" = "8:_F7B461AAFB7641F699DAEAF49904A662" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_E3796CB4DDEB47C8A0A151F01BE61090" + "OwnerKey" = "8:_0593B7A6B4D74017A43CC5F9741D078B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_F9CC1A2472E24A2BB88C84B8A01C2922" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_E3796CB4DDEB47C8A0A151F01BE61090" + "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FD2F9BAB00E2CB44E03A93E604085DE2" + "MsmKey" = "8:_E3796CB4DDEB47C8A0A151F01BE61090" + "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_E510132BBCC44CDFA220913E6ED4A37A" "OwnerKey" = "8:_0593B7A6B4D74017A43CC5F9741D078B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FD4013BB1CE24CA89531455A7B19E28D" + "MsmKey" = "8:_E510132BBCC44CDFA220913E6ED4A37A" "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_FD4013BB1CE24CA89531455A7B19E28D" - "OwnerKey" = "8:_A03B9AE58553491581FA0975DF6E6E88" + "MsmKey" = "8:_E510132BBCC44CDFA220913E6ED4A37A" + "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_F033647B20DD4A8C88658A817EFEED68" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_F7B461AAFB7641F699DAEAF49904A662" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_F9CC1A2472E24A2BB88C84B8A01C2922" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FD2F9BAB00E2CB44E03A93E604085DE2" + "OwnerKey" = "8:_0593B7A6B4D74017A43CC5F9741D078B" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FD2F9BAB00E2CB44E03A93E604085DE2" + "OwnerKey" = "8:_287894F290604710B0E99CD646021261" "MsmSig" = "8:_UNDEFINED" } } @@ -475,12 +577,32 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_A8236153441A4A2295B6EB7344BAF9E6" + "{A582A373-4685-4296-BEFE-614B80A702C3}:_A363B66FCAE3DB5C7CECA058D6C5B2B4" { - "SourcePath" = "8:..\\Release\\ForceLibrary.dll" + "SourcePath" = "8:comdlg32.dll" + "TargetName" = "8:comdlg32.dll" + "Tag" = "8:" + "Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:TRUE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{A582A373-4685-4296-BEFE-614B80A702C3}:_AB8B779E801448568C9C2869BFA349A8" + { + "SourcePath" = "8:ForceLibrary.dll" "TargetName" = "8:ForceLibrary.dll" "Tag" = "8:" - "Folder" = "8:_B4A52EA52B0946A1AF1F0D1FA55A352F" + "Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F" "Condition" = "8:" "Transitive" = "11:FALSE" "Vital" = "11:TRUE" @@ -491,8 +613,8 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:FALSE" - "IsDependency" = "11:FALSE" + "Exclude" = "11:TRUE" + "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } "{A582A373-4685-4296-BEFE-614B80A702C3}:_B65B1E8E7A2B4AB4B7D61E7F4FB061D0" @@ -535,6 +657,26 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } + "{A582A373-4685-4296-BEFE-614B80A702C3}:_F033647B20DD4A8C88658A817EFEED68" + { + "SourcePath" = "8:..\\Release\\ForceLibrary.dll" + "TargetName" = "8:ForceLibrary.dll" + "Tag" = "8:" + "Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } "{A582A373-4685-4296-BEFE-614B80A702C3}:_F9CC1A2472E24A2BB88C84B8A01C2922" { "SourcePath" = "8:..\\Installer\\Res\\readme.rtf" @@ -652,8 +794,8 @@ { "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:Decal" - "ProductCode" = "8:{3EA7A26F-9112-45D4-BDE0-9BE451D42A9F}" - "PackageCode" = "8:{3C98287A-7A74-40C7-B7A4-86E9A957F67A}" + "ProductCode" = "8:{B04617E3-2AFF-4650-84AF-10BE73B22A15}" + "PackageCode" = "8:{8009F85D-1CCB-4234-AD6E-FE3EE424A79D}" "UpgradeCode" = "8:{3025AB1B-80B9-46B7-9CE9-9887ADA2914F}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:TRUE" @@ -708,6 +850,14 @@ "ValueTypes" = "3:1" "Value" = "8:[ProductVersion]" } + "{35AE352C-BC79-4EF9-ABD8-61F467188583}:_AA655DB6EE5D4BB9B9204C385E9CBE31" + { + "Name" = "8:OldInjection" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "ValueTypes" = "3:3" + "Value" = "3:0" + } } } } @@ -1168,7 +1318,7 @@ } "MergeModule" { - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_FD4013BB1CE24CA89531455A7B19E28D" + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_A6E2165DAF724B38BD8B951949C710F5" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" @@ -1182,6 +1332,34 @@ "Feature" = "8:" "IsolateTo" = "8:" } + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_E3796CB4DDEB47C8A0A151F01BE61090" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_E510132BBCC44CDFA220913E6ED4A37A" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } } "ProjectOutput" { @@ -1493,6 +1671,9 @@ { } } + } + "VJSharpPlugin" + { } } } |
From: <no...@us...> - 2003-07-21 19:11:23
|
Log Message: ----------- Fixed source so plugins that rely on window messages in software mode function. Modified Files: -------------- /cvsroot/decaldev/source/Inject: Inject.cpp Manager.cpp Manager.h Revision Data ------------- Index: Inject.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Inject.cpp,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- Inject.cpp 20 Jun 2003 06:39:54 -0000 1.22 +++ Inject.cpp 21 Jul 2003 19:11:22 -0000 1.23 @@ -264,6 +264,9 @@ pDDHook->setObject( pDD ); pDDHook->QueryInterface( IID_IDirectDraw, reinterpret_cast< void ** >( lplpDD ) ); + + if( !CheckForHardwareMode( ) ) + cManager::_p->enableSoftwareMode( ); return hRes; } Index: Manager.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Manager.cpp,v retrieving revision 1.72 retrieving revision 1.73 diff -u -d -r1.72 -r1.73 --- Manager.cpp 20 Jun 2003 06:39:54 -0000 1.72 +++ Manager.cpp 21 Jul 2003 19:11:22 -0000 1.73 @@ -50,7 +50,8 @@ m_bContainer( false ), m_bXMLViewViewer( false ), m_hDecalDLL( NULL ), - m_eAlphaBlendMode( eAlphaBlendSoftware ) + m_eAlphaBlendMode( eAlphaBlendSoftware ), + m_bSoftware( false ) { // Start the decal object ::CoInitialize( NULL ); @@ -153,7 +154,7 @@ m_pRootSite->create( &lp, NULL, pRootLayer ); } - m_bInitialized = true; + m_bInitialized = true; // Set the blending Mode from the Registry { @@ -379,10 +380,15 @@ _ASSERTE( FALSE ); } +void cManager::enableSoftwareMode( ) +{ + m_bSoftware = true; +} + LRESULT cManager::localWndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) { -/* if((uMsg==WM_NCACTIVATE))/* || (uMsg==WM_ACTIVATE) || (uMsg==WM_ACTIVATEAPP) || (uMsg==WM_KILLFOCUS))*/ -/* return 0;*/ +/* if((uMsg==WM_NCACTIVATE))/* || (uMsg==WM_ACTIVATE) || (uMsg==WM_ACTIVATEAPP) || (uMsg==WM_KILLFOCUS)) + return 0;*/ // When destory comes through, shut down the decal object if ( uMsg == WM_DESTROY ) @@ -393,7 +399,7 @@ return ::CallWindowProc( m_pfnOld, m_hMain, uMsg, wParam, lParam ); } - if(( m_pRootSite == NULL) || ((m_p3DDevice == NULL) && ( !m_bContainer ) )) + if( ( m_pRootSite == NULL ) || ( ( m_p3DDevice == NULL ) && ( !m_bContainer ) && ( !m_bSoftware ) ) ) // Quick return when we aren't initialized return ::CallWindowProc( m_pfnOld, m_hMain, uMsg, wParam, lParam ); @@ -412,6 +418,10 @@ return 0; } } + + // Return if there is no 3D Device + if( m_p3DDevice == NULL ) + return ::CallWindowProc( m_pfnOld, m_hMain, uMsg, wParam, lParam ); if( uMsg >= WM_MOUSEFIRST && uMsg < WM_MOUSELAST ) { Index: Manager.h =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Manager.h,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- Manager.h 18 Mar 2003 06:53:33 -0000 1.30 +++ Manager.h 21 Jul 2003 19:11:22 -0000 1.31 @@ -150,6 +150,7 @@ LPVOID m_lpSurface; HMODULE m_hDecalDLL; + bool m_bSoftware; public: static CComObject< cManager > *_p; @@ -161,6 +162,7 @@ void createSurface( LPSIZE psz, IDirectDrawSurface4 **ppSurf ); void convertVersion( LPTSTR szVersion, DWORD &dwVersionMajor, DWORD &dwVersionMinor ); + void enableSoftwareMode( ); public: STDMETHOD(get_Hooks)(/*[out, retval]*/ IACHooks * *pVal); |
From: <no...@us...> - 2003-06-23 16:19:55
|
Log Message: ----------- erm, yeah.. duh Modified Files: -------------- /cvsroot/decaldev/source/DenAgent: TrayWnd.cpp Revision Data ------------- Index: TrayWnd.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DenAgent/TrayWnd.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- TrayWnd.cpp 23 Jun 2003 06:39:06 -0000 1.16 +++ TrayWnd.cpp 23 Jun 2003 16:19:54 -0000 1.17 @@ -349,13 +349,31 @@ key.Create( HKEY_LOCAL_MACHINE, _T( "SOFTWARE\\Decal" ) ); key.SetDWORDValue("OldInjection", 0x1L); g_bOldInject = true; + + TCHAR szInjectDll[ MAX_PATH ]; + memset( szInjectDll, 0, sizeof( szInjectDll ) / sizeof( szInjectDll[0] ) ); + + // Open the COM CoClass for IPager to get Inject.dll path + if( key.Open( HKEY_CLASSES_ROOT, _T( "CLSID\\{C79E2F76-06F8-4CD0-A613-4829237D297D}\\InprocServer32" ), KEY_READ ) == ERROR_SUCCESS ) + { + DWORD dwChars = MAX_PATH - 1; + if( key.QueryStringValue( NULL, szInjectDll, &dwChars ) != ERROR_SUCCESS ) + { + ::AfxMessageBox( _T( "There is a serious problem with the Decal Agent registry settings!!\n\nExiting." ), MB_ICONERROR | MB_OK ); + ::PostQuitMessage( 0 ); + } + } + + g_hInj = LoadLibrary( szInjectDll ); + + InjEnable = (VoidNoParams) GetProcAddress( g_hInj, (LPCSTR) 0x00000012 ); + InjDisable = (VoidNoParams) GetProcAddress( g_hInj, (LPCSTR) 0x00000011 ); + ::InjEnable(); } else // no { - //g_bOldInject = false; - //m_uiTimer = SetTimer( 1, 1000, NULL ); _snprintf( szBuffer, sizeof( szBuffer ), "Lobby Injection halted... restart DenAgent to try again." ); ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK ); } @@ -384,13 +402,31 @@ key.Create( HKEY_LOCAL_MACHINE, _T( "SOFTWARE\\Decal" ) ); key.SetDWORDValue("OldInjection", 0x1L); g_bOldInject = true; + + TCHAR szInjectDll[ MAX_PATH ]; + memset( szInjectDll, 0, sizeof( szInjectDll ) / sizeof( szInjectDll[0] ) ); + + // Open the COM CoClass for IPager to get Inject.dll path + if( key.Open( HKEY_CLASSES_ROOT, _T( "CLSID\\{C79E2F76-06F8-4CD0-A613-4829237D297D}\\InprocServer32" ), KEY_READ ) == ERROR_SUCCESS ) + { + DWORD dwChars = MAX_PATH - 1; + if( key.QueryStringValue( NULL, szInjectDll, &dwChars ) != ERROR_SUCCESS ) + { + ::AfxMessageBox( _T( "There is a serious problem with the Decal Agent registry settings!!\n\nExiting." ), MB_ICONERROR | MB_OK ); + ::PostQuitMessage( 0 ); + } + } + + g_hInj = LoadLibrary( szInjectDll ); + + InjEnable = (VoidNoParams) GetProcAddress( g_hInj, (LPCSTR) 0x00000012 ); + InjDisable = (VoidNoParams) GetProcAddress( g_hInj, (LPCSTR) 0x00000011 ); + ::InjEnable(); } else // no { - //g_bOldInject = false; - //m_uiTimer = SetTimer( 1, 1000, NULL ); _snprintf( szBuffer, sizeof( szBuffer ), "Lobby Injection halted... restart DenAgent to try again." ); ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK ); } |
From: <no...@us...> - 2003-06-23 11:05:07
|
Log Message: ----------- Oops forgot ATL Modified Files: -------------- /cvsroot/decaldev/source/DecalInstaller: DecalInstaller.vdproj Revision Data ------------- Index: DecalInstaller.vdproj =================================================================== RCS file: /cvsroot/decaldev/source/DecalInstaller/DecalInstaller.vdproj,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- DecalInstaller.vdproj 23 Jun 2003 07:06:26 -0000 1.11 +++ DecalInstaller.vdproj 23 Jun 2003 11:05:05 -0000 1.12 @@ -34,12 +34,6 @@ "Entry" { "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8" - "OwnerKey" = "8:_F7B461AAFB7641F699DAEAF49904A662" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8" "OwnerKey" = "8:_BD4EC7DFE26A40BA84001249533EC862" "MsmSig" = "8:_UNDEFINED" } @@ -58,18 +52,6 @@ "Entry" { "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8" - "OwnerKey" = "8:_8E9B4D574D014738B94369502A191459" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8" - "OwnerKey" = "8:_287894F290604710B0E99CD646021261" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8" "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940" "MsmSig" = "8:_UNDEFINED" } @@ -87,24 +69,6 @@ } "Entry" { - "MsmKey" = "8:_1243A2C6834D4845B0C206912B6EB0F2" - "OwnerKey" = "8:_0593B7A6B4D74017A43CC5F9741D078B" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_1243A2C6834D4845B0C206912B6EB0F2" - "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_1243A2C6834D4845B0C206912B6EB0F2" - "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { "MsmKey" = "8:_287894F290604710B0E99CD646021261" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -124,23 +88,11 @@ "Entry" { "MsmKey" = "8:_41F2E99B0C1B72CFD51382D5E140A7E8" - "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_41F2E99B0C1B72CFD51382D5E140A7E8" "OwnerKey" = "8:_A03B9AE58553491581FA0975DF6E6E88" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_41F2E99B0C1B72CFD51382D5E140A7E8" - "OwnerKey" = "8:_287894F290604710B0E99CD646021261" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { "MsmKey" = "8:_422DA789643D4CFC8308DBB6EB58ED8B" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -153,24 +105,6 @@ } "Entry" { - "MsmKey" = "8:_4A4692B587224086A283D992AD911E9E" - "OwnerKey" = "8:_0593B7A6B4D74017A43CC5F9741D078B" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4A4692B587224086A283D992AD911E9E" - "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_4A4692B587224086A283D992AD911E9E" - "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { "MsmKey" = "8:_563EF804A0CB4DED80A2A6473BC3F407" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -213,36 +147,12 @@ } "Entry" { - "MsmKey" = "8:_A363B66FCAE3DB5C7CECA058D6C5B2B4" - "OwnerKey" = "8:_287894F290604710B0E99CD646021261" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { "MsmKey" = "8:_A8236153441A4A2295B6EB7344BAF9E6" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_AB8B779E801448568C9C2869BFA349A8" - "OwnerKey" = "8:_287894F290604710B0E99CD646021261" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_AB8B779E801448568C9C2869BFA349A8" - "OwnerKey" = "8:_E256A97055264EB5B195F1414117D027" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_AB8B779E801448568C9C2869BFA349A8" - "OwnerKey" = "8:_673044C5656142EBAA86D07A36EFFF5A" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { "MsmKey" = "8:_AC7940677AFA439D9D75C9827A0003A2" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -273,24 +183,6 @@ } "Entry" { - "MsmKey" = "8:_CD09DD9D3D0E41A8809C62E0EAC10E6E" - "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_CD09DD9D3D0E41A8809C62E0EAC10E6E" - "OwnerKey" = "8:_A03B9AE58553491581FA0975DF6E6E88" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { - "MsmKey" = "8:_CD09DD9D3D0E41A8809C62E0EAC10E6E" - "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { "MsmKey" = "8:_E256A97055264EB5B195F1414117D027" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -315,8 +207,14 @@ } "Entry" { - "MsmKey" = "8:_FD2F9BAB00E2CB44E03A93E604085DE2" - "OwnerKey" = "8:_287894F290604710B0E99CD646021261" + "MsmKey" = "8:_FD4013BB1CE24CA89531455A7B19E28D" + "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_FD4013BB1CE24CA89531455A7B19E28D" + "OwnerKey" = "8:_A03B9AE58553491581FA0975DF6E6E88" "MsmSig" = "8:_UNDEFINED" } } @@ -577,26 +475,6 @@ "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_A363B66FCAE3DB5C7CECA058D6C5B2B4" - { - "SourcePath" = "8:comdlg32.dll" - "TargetName" = "8:comdlg32.dll" - "Tag" = "8:" - "Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } "{A582A373-4685-4296-BEFE-614B80A702C3}:_A8236153441A4A2295B6EB7344BAF9E6" { "SourcePath" = "8:..\\Release\\ForceLibrary.dll" @@ -617,26 +495,6 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_AB8B779E801448568C9C2869BFA349A8" - { - "SourcePath" = "8:ForceLibrary.dll" - "TargetName" = "8:ForceLibrary.dll" - "Tag" = "8:" - "Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F" - "Condition" = "8:" - "Transitive" = "11:FALSE" - "Vital" = "11:TRUE" - "ReadOnly" = "11:FALSE" - "Hidden" = "11:FALSE" - "System" = "11:FALSE" - "Permanent" = "11:FALSE" - "SharedLegacy" = "11:FALSE" - "PackageAs" = "3:1" - "Register" = "3:1" - "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" - "IsolateTo" = "8:" - } "{A582A373-4685-4296-BEFE-614B80A702C3}:_B65B1E8E7A2B4AB4B7D61E7F4FB061D0" { "SourcePath" = "8:..\\Installer\\Res\\decalbar.jpg" @@ -1310,35 +1168,7 @@ } "MergeModule" { - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_1243A2C6834D4845B0C206912B6EB0F2" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" - "Properties" - { - } - "LanguageId" = "3:0" - "Exclude" = "11:TRUE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_4A4692B587224086A283D992AD911E9E" - { - "UseDynamicProperties" = "11:TRUE" - "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" - "Properties" - { - } - "LanguageId" = "3:0" - "Exclude" = "11:TRUE" - "Folder" = "8:" - "Feature" = "8:" - "IsolateTo" = "8:" - } - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_CD09DD9D3D0E41A8809C62E0EAC10E6E" + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_FD4013BB1CE24CA89531455A7B19E28D" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" @@ -1347,7 +1177,7 @@ { } "LanguageId" = "3:0" - "Exclude" = "11:TRUE" + "Exclude" = "11:FALSE" "Folder" = "8:" "Feature" = "8:" "IsolateTo" = "8:" |
From: <no...@us...> - 2003-06-23 07:06:26
|
Log Message: ----------- Added the old decal bar back to new installer; update for RC2 package/product code; remove bootstrap (.7mb saved!) Modified Files: -------------- /cvsroot/decaldev/source/DecalInstaller: DecalInstaller.vdproj Revision Data ------------- Index: DecalInstaller.vdproj =================================================================== RCS file: /cvsroot/decaldev/source/DecalInstaller/DecalInstaller.vdproj,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- DecalInstaller.vdproj 20 Jun 2003 06:42:29 -0000 1.10 +++ DecalInstaller.vdproj 23 Jun 2003 07:06:26 -0000 1.11 @@ -87,19 +87,19 @@ } "Entry" { - "MsmKey" = "8:_1F778A8672BE4C839269BAB167E9614C" + "MsmKey" = "8:_1243A2C6834D4845B0C206912B6EB0F2" "OwnerKey" = "8:_0593B7A6B4D74017A43CC5F9741D078B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_1F778A8672BE4C839269BAB167E9614C" + "MsmKey" = "8:_1243A2C6834D4845B0C206912B6EB0F2" "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_1F778A8672BE4C839269BAB167E9614C" + "MsmKey" = "8:_1243A2C6834D4845B0C206912B6EB0F2" "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980" "MsmSig" = "8:_UNDEFINED" } @@ -153,56 +153,56 @@ } "Entry" { - "MsmKey" = "8:_563EF804A0CB4DED80A2A6473BC3F407" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_4A4692B587224086A283D992AD911E9E" + "OwnerKey" = "8:_0593B7A6B4D74017A43CC5F9741D078B" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_5781C0D101DE4F4C98C59D8A3A2052BB" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_4A4692B587224086A283D992AD911E9E" + "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_673044C5656142EBAA86D07A36EFFF5A" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_4A4692B587224086A283D992AD911E9E" + "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_7871BAAF26D34E148CE9063C20620A7E" + "MsmKey" = "8:_563EF804A0CB4DED80A2A6473BC3F407" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_8E9B4D574D014738B94369502A191459" + "MsmKey" = "8:_5781C0D101DE4F4C98C59D8A3A2052BB" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_942AAA28BB647CF0EF1C6137B296D4FE" - "OwnerKey" = "8:_BD4EC7DFE26A40BA84001249533EC862" + "MsmKey" = "8:_673044C5656142EBAA86D07A36EFFF5A" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9455E238CE65423791E3468D3B46A687" - "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980" + "MsmKey" = "8:_7871BAAF26D34E148CE9063C20620A7E" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9455E238CE65423791E3468D3B46A687" - "OwnerKey" = "8:_A03B9AE58553491581FA0975DF6E6E88" + "MsmKey" = "8:_8E9B4D574D014738B94369502A191459" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_9455E238CE65423791E3468D3B46A687" - "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940" + "MsmKey" = "8:_942AAA28BB647CF0EF1C6137B296D4FE" + "OwnerKey" = "8:_BD4EC7DFE26A40BA84001249533EC862" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -249,8 +249,8 @@ } "Entry" { - "MsmKey" = "8:_B4C386BF2CC7BBF4F0C31E1D7755BA73" - "OwnerKey" = "8:_287894F290604710B0E99CD646021261" + "MsmKey" = "8:_B65B1E8E7A2B4AB4B7D61E7F4FB061D0" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -273,26 +273,26 @@ } "Entry" { - "MsmKey" = "8:_E256A97055264EB5B195F1414117D027" - "OwnerKey" = "8:_UNDEFINED" + "MsmKey" = "8:_CD09DD9D3D0E41A8809C62E0EAC10E6E" + "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E2BCDE09C4E942E2AA8D04B5BD84DCF3" - "OwnerKey" = "8:_0593B7A6B4D74017A43CC5F9741D078B" + "MsmKey" = "8:_CD09DD9D3D0E41A8809C62E0EAC10E6E" + "OwnerKey" = "8:_A03B9AE58553491581FA0975DF6E6E88" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E2BCDE09C4E942E2AA8D04B5BD84DCF3" + "MsmKey" = "8:_CD09DD9D3D0E41A8809C62E0EAC10E6E" "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940" "MsmSig" = "8:_UNDEFINED" } "Entry" { - "MsmKey" = "8:_E2BCDE09C4E942E2AA8D04B5BD84DCF3" - "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980" + "MsmKey" = "8:_E256A97055264EB5B195F1414117D027" + "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -343,16 +343,16 @@ "DisplayName" = "8:Release" "IsDebugOnly" = "11:FALSE" "IsReleaseOnly" = "11:TRUE" - "OutputFilename" = "8:Release\\DecalInstaller.msi" + "OutputFilename" = "8:..\\Installer\\Res\\Decal.msi" "PackageFilesAs" = "3:2" "PackageFileSize" = "3:-2147483648" "CabType" = "3:1" - "Compression" = "3:2" + "Compression" = "3:3" "SignOutput" = "11:FALSE" "CertificateFile" = "8:" "PrivateKeyFile" = "8:" "TimeStampServer" = "8:" - "InstallerBootstrapper" = "3:2" + "InstallerBootstrapper" = "3:1" } } "Deployable" @@ -393,7 +393,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:4" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -453,7 +453,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -593,7 +593,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -633,14 +633,14 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_B4C386BF2CC7BBF4F0C31E1D7755BA73" + "{A582A373-4685-4296-BEFE-614B80A702C3}:_B65B1E8E7A2B4AB4B7D61E7F4FB061D0" { - "SourcePath" = "8:Inject.DLL" - "TargetName" = "8:Inject.DLL" + "SourcePath" = "8:..\\Installer\\Res\\decalbar.jpg" + "TargetName" = "8:decalbar.jpg" "Tag" = "8:" "Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F" "Condition" = "8:" @@ -654,7 +654,7 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:TRUE" - "IsDependency" = "11:TRUE" + "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } "{A582A373-4685-4296-BEFE-614B80A702C3}:_BC87E37B7AD8F9835E2A3AC4B4EDBC61" @@ -673,7 +673,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:2" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -713,7 +713,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:4" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -794,8 +794,8 @@ { "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:Decal" - "ProductCode" = "8:{ED4744B7-3F12-453B-9908-D192E0F5477A}" - "PackageCode" = "8:{62BF5C10-C74E-40A6-A1EA-8F629ADBEE34}" + "ProductCode" = "8:{3EA7A26F-9112-45D4-BDE0-9BE451D42A9F}" + "PackageCode" = "8:{3C98287A-7A74-40C7-B7A4-86E9A957F67A}" "UpgradeCode" = "8:{3025AB1B-80B9-46B7-9CE9-9887ADA2914F}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:TRUE" @@ -944,7 +944,8 @@ "Type" = "3:8" "ContextData" = "8:Bitmap" "Attributes" = "3:4" - "Setting" = "3:1" + "Setting" = "3:2" + "Value" = "8:_B65B1E8E7A2B4AB4B7D61E7F4FB061D0" "UsePlugInResources" = "11:TRUE" } } @@ -975,7 +976,8 @@ "Type" = "3:8" "ContextData" = "8:Bitmap" "Attributes" = "3:4" - "Setting" = "3:1" + "Setting" = "3:2" + "Value" = "8:_B65B1E8E7A2B4AB4B7D61E7F4FB061D0" "UsePlugInResources" = "11:TRUE" } "ShowProgress" @@ -1019,7 +1021,8 @@ "Type" = "3:8" "ContextData" = "8:Bitmap" "Attributes" = "3:4" - "Setting" = "3:1" + "Setting" = "3:2" + "Value" = "8:_B65B1E8E7A2B4AB4B7D61E7F4FB061D0" "UsePlugInResources" = "11:TRUE" } "ShowProgress" @@ -1063,7 +1066,8 @@ "Type" = "3:8" "ContextData" = "8:Bitmap" "Attributes" = "3:4" - "Setting" = "3:1" + "Setting" = "3:2" + "Value" = "8:_B65B1E8E7A2B4AB4B7D61E7F4FB061D0" "UsePlugInResources" = "11:TRUE" } "UpdateText" @@ -1107,7 +1111,8 @@ "Type" = "3:8" "ContextData" = "8:Bitmap" "Attributes" = "3:4" - "Setting" = "3:1" + "Setting" = "3:2" + "Value" = "8:_B65B1E8E7A2B4AB4B7D61E7F4FB061D0" "UsePlugInResources" = "11:TRUE" } } @@ -1129,7 +1134,8 @@ "Type" = "3:8" "ContextData" = "8:Bitmap" "Attributes" = "3:4" - "Setting" = "3:1" + "Setting" = "3:2" + "Value" = "8:_B65B1E8E7A2B4AB4B7D61E7F4FB061D0" "UsePlugInResources" = "11:TRUE" } "CopyrightWarning" @@ -1177,7 +1183,8 @@ "Type" = "3:8" "ContextData" = "8:Bitmap" "Attributes" = "3:4" - "Setting" = "3:1" + "Setting" = "3:2" + "Value" = "8:_B65B1E8E7A2B4AB4B7D61E7F4FB061D0" "UsePlugInResources" = "11:TRUE" } } @@ -1220,7 +1227,8 @@ "Type" = "3:8" "ContextData" = "8:Bitmap" "Attributes" = "3:4" - "Setting" = "3:1" + "Setting" = "3:2" + "Value" = "8:_B65B1E8E7A2B4AB4B7D61E7F4FB061D0" "UsePlugInResources" = "11:TRUE" } "CopyrightWarning" @@ -1268,7 +1276,8 @@ "Type" = "3:8" "ContextData" = "8:Bitmap" "Attributes" = "3:4" - "Setting" = "3:1" + "Setting" = "3:2" + "Value" = "8:_B65B1E8E7A2B4AB4B7D61E7F4FB061D0" "UsePlugInResources" = "11:TRUE" } } @@ -1290,7 +1299,8 @@ "Type" = "3:8" "ContextData" = "8:Bitmap" "Attributes" = "3:4" - "Setting" = "3:1" + "Setting" = "3:2" + "Value" = "8:_B65B1E8E7A2B4AB4B7D61E7F4FB061D0" "UsePlugInResources" = "11:TRUE" } } @@ -1300,44 +1310,44 @@ } "MergeModule" { - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_1F778A8672BE4C839269BAB167E9614C" + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_1243A2C6834D4845B0C206912B6EB0F2" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" + "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" "Properties" { } "LanguageId" = "3:0" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" "Folder" = "8:" "Feature" = "8:" "IsolateTo" = "8:" } - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_9455E238CE65423791E3468D3B46A687" + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_4A4692B587224086A283D992AD911E9E" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_atl71_rtl_x86_---.msm" + "SourcePath" = "8:vc_user_stl71_rtl_x86_---.msm" "Properties" { } "LanguageId" = "3:0" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" "Folder" = "8:" "Feature" = "8:" "IsolateTo" = "8:" } - "{35A69C6E-5BA4-440D-803D-762B59A45393}:_E2BCDE09C4E942E2AA8D04B5BD84DCF3" + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_CD09DD9D3D0E41A8809C62E0EAC10E6E" { "UseDynamicProperties" = "11:TRUE" "IsDependency" = "11:TRUE" - "SourcePath" = "8:vc_user_crt71_rtl_x86_---.msm" + "SourcePath" = "8:vc_user_atl71_rtl_x86_---.msm" "Properties" { } "LanguageId" = "3:0" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" "Folder" = "8:" "Feature" = "8:" "IsolateTo" = "8:" |
From: <no...@us...> - 2003-06-23 07:05:45
|
Log Message: ----------- Updates for RC2 versions Modified Files: -------------- /cvsroot/decaldev/source/Installer/Res: readme.rtf Install.vbs Revision Data ------------- Index: readme.rtf =================================================================== RCS file: /cvsroot/decaldev/source/Installer/Res/readme.rtf,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- readme.rtf 1 Apr 2003 05:37:30 -0000 1.24 +++ readme.rtf 23 Jun 2003 07:05:42 -0000 1.25 @@ -1,10 +1,10 @@ {\rtf1\ansi\ansicpg1252\uc1\deff0\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} -{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f36\froman\fcharset0\fprq2{\*\panose 02040502050405020303}Georgia;} -{\f37\froman\fcharset238\fprq2 Times New Roman CE;}{\f38\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f40\froman\fcharset161\fprq2 Times New Roman Greek;}{\f41\froman\fcharset162\fprq2 Times New Roman Tur;} -{\f42\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f43\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f44\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f45\froman\fcharset163\fprq2 Times New Roman (Vietnamese);} -{\f57\fmodern\fcharset238\fprq1 Courier New CE;}{\f58\fmodern\fcharset204\fprq1 Courier New Cyr;}{\f60\fmodern\fcharset161\fprq1 Courier New Greek;}{\f61\fmodern\fcharset162\fprq1 Courier New Tur;}{\f62\fmodern\fcharset177\fprq1 Courier New (Hebrew);} -{\f63\fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f64\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f65\fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f397\froman\fcharset238\fprq2 Georgia CE;}{\f398\froman\fcharset204\fprq2 Georgia Cyr;} -{\f400\froman\fcharset161\fprq2 Georgia Greek;}{\f401\froman\fcharset162\fprq2 Georgia Tur;}{\f404\froman\fcharset186\fprq2 Georgia Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0; +{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f37\froman\fcharset0\fprq2{\*\panose 00000000000000000000}Georgia;} +{\f38\froman\fcharset238\fprq2 Times New Roman CE;}{\f39\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f41\froman\fcharset161\fprq2 Times New Roman Greek;}{\f42\froman\fcharset162\fprq2 Times New Roman Tur;} +{\f43\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f44\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f45\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f46\froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\f58\fmodern\fcharset238\fprq1 Courier New CE;}{\f59\fmodern\fcharset204\fprq1 Courier New Cyr;}{\f61\fmodern\fcharset161\fprq1 Courier New Greek;}{\f62\fmodern\fcharset162\fprq1 Courier New Tur;}{\f63\fmodern\fcharset177\fprq1 Courier New (Hebrew);} +{\f64\fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f65\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f66\fmodern\fcharset163\fprq1 Courier New (Vietnamese);}{\f408\froman\fcharset238\fprq2 Georgia CE;}{\f409\froman\fcharset204\fprq2 Georgia Cyr;} +{\f411\froman\fcharset161\fprq2 Georgia Greek;}{\f412\froman\fcharset162\fprq2 Georgia Tur;}{\f415\froman\fcharset186\fprq2 Georgia Baltic;}}{\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{\ql \li0\ri0\widctlpar\faauto\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 Normal;}{\*\cs10 \additive \ssemihidden Default Paragraph Font;}{\* \ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv @@ -34,82 +34,99 @@ \listoverridecount0\ls7}{\listoverride\listid583338098\listoverridecount0\ls8}{\listoverride\listid561211173\listoverridecount0\ls9}{\listoverride\listid1214316582\listoverridecount0\ls10}{\listoverride\listid771126764\listoverridecount0\ls11} {\listoverride\listid462045303\listoverridecount0\ls12}{\listoverride\listid1538081160\listoverridecount0\ls13}{\listoverride\listid590091954\listoverridecount0\ls14}{\listoverride\listid1734812107\listoverridecount0\ls15}{\listoverride\listid1300184623 \listoverridecount0\ls16}{\listoverride\listid855463441\listoverridecount0\ls17}{\listoverride\listid399254398\listoverridecount0\ls18}{\listoverride\listid1551961698\listoverridecount0\ls19}{\listoverride\listid1813057095\listoverridecount0\ls20}} -{\*\rsidtbl \rsid13959554}{\*\generator Microsoft Word 10.0.2627;}{\info{\title Decal README}{\author Adam Wright}{\operator Jeffrey Dodge}{\creatim\yr2002\mo10\dy3\hr3\min43}{\revtim\yr2003\mo4\dy1\min1}{\version3}{\edmins4}{\nofpages2}{\nofwords323} -{\nofchars1846}{\*\company The Anarchs}{\nofcharsws2165}{\vern16437}}\widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3 -\jcompress\viewkind4\viewscale100\nolnhtadjtbl\rsidroot13959554 \fet0\sectd \linex0\headery709\footery709\colsx709\sectdefaultcl\sftnbj {\*\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 -\qc \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b\f36\fs28\cf1\insrsid13959554 Decal README +{\*\rsidtbl \rsid1721752\rsid1909948\rsid11889854\rsid13959554}{\*\generator Microsoft Word 10.0.2627;}{\info{\title Decal README}{\author Adam Wright}{\operator Jeffrey Dodge}{\creatim\yr2002\mo10\dy3\hr3\min43}{\revtim\yr2003\mo6\dy23\hr3\min4} +{\version4}{\edmins9}{\nofpages2}{\nofwords407}{\nofchars2321}{\*\company The Anarchs}{\nofcharsws2723}{\vern16437}}\widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\horzdoc\dghspace120\dgvspace120\dghorigin1701 +\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind4\viewscale100\nolnhtadjtbl\rsidroot13959554 \fet0\sectd \linex0\headery709\footery709\colsx709\sectdefaultcl\sftnbj {\*\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 \qc \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b\f37\fs28\cf1\insrsid13959554 Decal README \par }{\f2\fs20\cf1\insrsid13959554 -\par }{\fs20\cf1\insrsid13959554 This is the 2.5.0.2}{\fs20\cf1\insrsid13959554 }{\fs20\cf1\insrsid13959554 Beta }{\fs20\cf1\insrsid13959554 Release of Decal. +\par }{\fs20\cf1\insrsid11889854 This is the 2}{\fs20\cf1\super\insrsid11889854\charrsid11889854 nd}{\fs20\cf1\insrsid11889854 release candidate of Decal version 2.5.2.0}{\fs20\cf1\insrsid13959554 . \par -\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\fs22\cf1\insrsid13959554 This is Decal 2.5.0.}{\fs22\cf1\insrsid13959554 2}{\fs22\cf1\insrsid13959554 , a }{\fs22\cf1\insrsid13959554 unsupported beta release}{\fs22\cf1\insrsid13959554 . -We hope that our releases are bug free, but if you run into problems, please report them at }{\field{\*\fldinst {\fs22\cf1\insrsid13959554 HYPERLINK "http://forums.acdev.org/phpBB2/viewforum.php" }{\fs22\cf1\insrsid13959554\charrsid1721752 {\*\datafield +\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\fs22\cf1\insrsid11889854 This is Decal 2.5.2.0 Release Candidate 2 -- a }{\fs22\cf1\insrsid13959554 supported release. We hope that our release}{\fs22\cf1\insrsid11889854 candidates}{ +\fs22\cf1\insrsid13959554 are bug free, but if you run into problems, please report them at }{\field{\*\fldinst {\fs22\cf1\insrsid13959554 HYPERLINK "http://forums.acdev.org/phpBB2/viewforum.php" }{\fs22\cf1\insrsid1909948\charrsid1721752 {\*\datafield 00d0c9ea79f9bace118c8200aa004ba90b02000000170000002d00000068007400740070003a002f002f0066006f00720075006d0073002e00610063006400650076002e006f00720067002f007000680070004200420032002f00760069006500770066006f00720075006d002e007000680070000000e0c9ea79f9bace11 -8c8200aa004ba90b5a00000068007400740070003a002f002f0066006f00720075006d0073002e00610063006400650076002e006f00720067002f007000680070004200420032002f00760069006500770066006f00720075006d002e007000680070000000}}}{\fldrslt { +8c8200aa004ba90b5a00000068007400740070003a002f002f0066006f00720075006d0073002e00610063006400650076002e006f00720067002f007000680070004200420032002f00760069006500770066006f00720075006d002e00700068007000000000}}}{\fldrslt { \cs15\fs22\ul\cf2\insrsid13959554\charrsid1721752 http://forums.acdev.org/phpBB2/viewforum.php}}}{\fs22\cf1\insrsid13959554 . -\par }{\fs22\cf1\insrsid13959554 This way we can keep track of what the current issues are and work to fix them for the official release. +\par This way we can keep track of what the current issues are and work to fix them for the }{\fs22\cf1\insrsid11889854 final release of Decal 2.5.2.0.}{\fs22\cf1\insrsid13959554 \par -\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid13959554 {\b\fs22\cf1\insrsid13959554 Changes since Release 2.5.0.1 RC1 +\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0\pararsid11889854 {\b\fs22\cf1\insrsid11889854 Changes since Release 2.5.2.0 RC1 +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid11889854 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid11889854 +{\fs22\cf1\insrsid11889854 Fixed DenAgent inject dependency. Inject.dll may now reside anywhere on your system.}{\b\fs22\cf1\insrsid11889854\charrsid11889854 +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid11889854 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid11889854 +{\fs22\cf1\insrsid11889854 Fixed several DenAgent crashes.}{\b\fs22\cf1\insrsid11889854\charrsid11889854 +\par }\pard \ql \li0\ri0\nowidctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\faauto\rin0\lin0\itap0\pararsid11889854 {\fs22\cf1\insrsid11889854 +\par }{\b\fs22\cf1\insrsid11889854 Changes since Beta 2.5.0.5 +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid11889854 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid11889854 +{\fs22\cf1\insrsid11889854 Lots of bugfixes}{\b\fs22\cf1\insrsid11889854\charrsid11889854 +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid11889854 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid11889854 +{\fs22\cf1\insrsid11889854 The identify queue no longer fights with the client over whether or not the id panel is closed or open.}{\b\fs22\cf1\insrsid11889854\charrsid11889854 +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid11889854 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid11889854 +{\fs22\cf1\insrsid11889854 Manually identifying an item sends it to the top of the identify queue \endash you should notice that it is far easier to identify items manually now if a plugin is requesting several items to be identified.}{ +\b\fs22\cf1\insrsid11889854 +\par }\pard \ql \li0\ri0\nowidctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\faauto\rin0\lin0\itap0 {\fs22\cf1\insrsid11889854 +\par }\pard \ql \li0\ri0\nowidctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\faauto\rin0\lin0\itap0\pararsid13959554 {\b\fs22\cf1\insrsid13959554 Changes since Release 2.5.0.1 RC1 \par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 Far too many to list \endash most signifigant is the id queue}{\b\fs22\cf1\insrsid13959554 \par }\pard \ql \li0\ri0\nowidctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\faauto\rin0\lin0\itap0 {\b\fs22\cf1\insrsid13959554 \par Changes since Release 2.5.0.1 RC1 -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid13959554 { -\fs22\cf1\insrsid13959554 Install now enters correct version into the registry}{\b\fs22\cf1\insrsid13959554 +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid13959554 +{\fs22\cf1\insrsid13959554 Install now enters correct version into the registry}{\b\fs22\cf1\insrsid13959554 \par }\pard \ql \li0\ri0\nowidctlpar{\*\pn \pnlvlcont\ilvl0\ls0\pnrnot0\pndec }\faauto\rin0\lin0\itap0 {\b\fs22\cf1\insrsid13959554 \par Changes since Release 2.5.0.0 RC3 -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid13959554 { -\fs22\cf1\insrsid13959554 .Net plugins will now show their version in the agent, rather than the version of the .Net COM proxy.}{\b\fs22\cf1\insrsid13959554 -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}{\fs22\cf1\insrsid13959554 ACHooks slightly cleaned up, should now behave as it did in 2.5.0.0 RC1.}{\b\fs22\cf1\insrsid13959554 +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid13959554 +{\fs22\cf1\insrsid13959554 .Net plugins will now show their version in the agent, rather than the version of the .Net COM proxy.}{\b\fs22\cf1\insrsid13959554 +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-283\li283\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pnf3\pnstart1\pnindent283\pnhang {\pntxtb \'b7}}\faauto\ls1\rin0\lin283\itap0\pararsid13959554 +{\fs22\cf1\insrsid13959554 ACHooks slightly cleaned up, should now behave as it did in 2.5.0.0 RC1.}{\b\fs22\cf1\insrsid13959554 \par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\b\fs22\cf1\insrsid13959554 \par Changes since Release 2.5.0.0 RC1 -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls2\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls2\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls2\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 CharStats will no longer crash if you switch characters too quickly -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls3\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls3\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 IPluginSink fix -\endash if Decal never accepted your command line input, it should now -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls4\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls3\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls3\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 +IPluginSink fix \endash if Decal never accepted your command line input, it should now +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls4\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 Much ACHooks cleanup and many fixes as well as new hooks for developers to use \par }\pard \ql \li0\ri0\nowidctlpar\faauto\ilvl12\rin0\lin0\itap0\pararsid13959554 {\b\fs22\cf1\insrsid13959554 \par Changes since Release 2.4.1.4 -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls5\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls5\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 ? +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls5\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls5\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 ? + \par }\pard \ql \li0\ri0\nowidctlpar\faauto\ilvl12\rin0\lin0\itap0\pararsid13959554 {\b\fs22\cf1\insrsid13959554 \par Changes since Release 2.4.1.3 -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls6\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls6\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls6\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls6\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 CharStats fixes (enchantments should be far more reliable now) -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls7\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls7\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls7\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls7\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 Changes to the way controls track focus events -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls8\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls8\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls8\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls8\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 DenAgent no longer deletes XML files if there were problems updating -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls9\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls9\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls9\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls9\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 Add 'mask' option for vectors to handle animation packet \par }\pard \ql \li0\ri0\nowidctlpar\faauto\ilvl12\rin0\lin0\itap0\pararsid13959554 {\b\fs22\cf1\insrsid13959554 \par Changes since Release 2.4.1.2 -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls10\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls10\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 -Compiled in VC6 (works on windows 9x again) -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls11\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls11\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 -CharacterStats fixes -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls12\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls12\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 -WorldFilter fixes +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls10\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls10\rin0\lin360\itap0\pararsid13959554 { +\fs22\cf1\insrsid13959554 Compiled in VC6 (works on windows 9x again) +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls11\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls11\rin0\lin360\itap0\pararsid13959554 { +\fs22\cf1\insrsid13959554 CharacterStats fixes +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls12\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls12\rin0\lin360\itap0\pararsid13959554 { +\fs22\cf1\insrsid13959554 WorldFilter fixes \par }\pard \ql \li0\ri0\nowidctlpar\faauto\ilvl12\rin0\lin0\itap0\pararsid13959554 {\b\fs22\cf1\insrsid13959554 \par Changes since Release 2.4.1.0 -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls13\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls13\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 -ACHooks: QueryMemLoc added to the IDL (it should have always been there). -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls14\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls14\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 -ACHooks->QueryMemLoc now returns NULL if there is a client and memlocs.xml version mismatch. -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls15\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls15\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 -ACHooks is created by the Decal object rather than IPluginSite. As a result Services can obtain a reference to it now. -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls16\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls16\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 -ACHooks: SendTellEx Hook -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls17\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls17\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 -DecalNet: Uses client hooks for a quicker and more stable parsing method. If the memory locations are not there, it falls back to the previous parser. +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls13\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls13\rin0\lin360\itap0\pararsid13959554 { +\fs22\cf1\insrsid13959554 ACHooks: QueryMemLoc added to the IDL (it should have always been there). +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls14\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls14\rin0\lin360\itap0\pararsid13959554 { +\fs22\cf1\insrsid13959554 ACHooks->QueryMemLoc now returns NULL if there is a client and memlocs.xml version mismatch. +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls15\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls15\rin0\lin360\itap0\pararsid13959554 { +\fs22\cf1\insrsid13959554 ACHooks is created by the Decal object rather than IPluginSite. As a result Services can obtain a reference to it now. +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls16\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls16\rin0\lin360\itap0\pararsid13959554 { +\fs22\cf1\insrsid13959554 ACHooks: SendTellEx Hook +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls17\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls17\rin0\lin360\itap0\pararsid13959554 { +\fs22\cf1\insrsid13959554 DecalNet: Uses client hooks for a quicker and more stable parsing method. If the memory locations are not there, it falls back to the previous parser. \par }\pard \ql \li0\ri0\nowidctlpar\faauto\ilvl12\rin0\lin0\itap0\pararsid13959554 {\b\fs22\cf1\insrsid13959554 \par \par Changes since Release 2.4 -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls18\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls18\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 -ACHooks: Added hook for SetAutoRun -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls19\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls19\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 -ACHooks: Added hood for SendTell -\par {\pntext\pard\plain\f3\fs22\cf1 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls20\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls20\rin0\lin360\itap0\pararsid13959554 {\fs22\cf1\insrsid13959554 -WorldFilter: Now uses DestroyedObject hook, this should result in less lag and better memory usage +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls18\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls18\rin0\lin360\itap0\pararsid13959554 { +\fs22\cf1\insrsid13959554 ACHooks: Added hook for SetAutoRun +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls19\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls19\rin0\lin360\itap0\pararsid13959554 { +\fs22\cf1\insrsid13959554 ACHooks: Added hood for SendTell +\par {\pntext\pard\plain\f3\fs22\cf1\insrsid13959554 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li360\ri0\nowidctlpar{\*\pn \pnlvlbody\ilvl0\ls20\pnrnot0\pnf3 {\pntxtb \'b7}}\faauto\ls20\rin0\lin360\itap0\pararsid13959554 { +\fs22\cf1\insrsid13959554 WorldFilter: Now uses DestroyedObject hook, this should result in less lag and better memory usage \par }} Index: Install.vbs =================================================================== RCS file: /cvsroot/decaldev/source/Installer/Res/Install.vbs,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- Install.vbs 20 Jun 2003 06:47:30 -0000 1.36 +++ Install.vbs 23 Jun 2003 07:05:42 -0000 1.37 @@ -56,7 +56,7 @@ 'All of these -must- be specified Private Const ThisProduct = "Decal" ' The name of your product, used it dialogs and such -Private Const ThisVersion = "2.5.2.0 RC1" ' The version of your product, used in dialogs and such +Private Const ThisVersion = "2.5.2.0 RC2" ' The version of your product, used in dialogs and such Private Const MSIFileName = "Decal.msi" ' The name of the MSI file that will be excuted 'Add all of your previous product IDs to the dictionary for removal by the installer AllProducts.Add "1.0.1.0", "{4AFA7857-D10F-4A74-A504-9C10320A6DB9}" @@ -100,6 +100,7 @@ AllProducts.Add "2.5.0.4", "{29E8FB17-4C4E-4F5D-8C5D-F3826ECE2CF6}" AllProducts.Add "2.5.0.5", "{35012CC1-DC9F-49C3-9593-2B246AE68D3A}" AllProducts.Add "2.5.2.0 RC1", "{ED4744B7-3F12-453B-9908-D192E0F5477A}" +AllProducts.Add "2.5.2.0 RC2", "{3EA7A26F-9112-45D4-BDE0-9BE451D42A9F}" |
From: <no...@us...> - 2003-06-23 06:49:35
|
Log Message: ----------- Fix control path warning/crash if verqueryvalue fails Modified Files: -------------- /cvsroot/decaldev/source/DenAgent: AutoUpdate.cpp Revision Data ------------- Index: AutoUpdate.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DenAgent/AutoUpdate.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- AutoUpdate.cpp 20 Jun 2003 20:19:11 -0000 1.10 +++ AutoUpdate.cpp 23 Jun 2003 06:49:34 -0000 1.11 @@ -179,10 +179,10 @@ dwVerSize = ::GetFileVersionInfoSize(const_cast<LPTSTR>(sFile.c_str()), &dwDummy); - if (dwVerSize == 0) - { + if( dwVerSize == 0 ) return true; // if file vsn not available, assume needs updating - } else { + else + { BYTE *pbVersionInfo = reinterpret_cast< BYTE * >(::_alloca(dwVerSize)); ::GetFileVersionInfo(const_cast<LPTSTR>(sFile.c_str()), 0, dwVerSize, pbVersionInfo); @@ -190,29 +190,37 @@ VS_FIXEDFILEINFO *vffi; UINT nLength = sizeof(VS_FIXEDFILEINFO); - if(::VerQueryValue(pbVersionInfo, _T("\\"), reinterpret_cast<LPVOID *>(&vffi), &nLength)) + if( ::VerQueryValue( pbVersionInfo, _T("\\"), reinterpret_cast< LPVOID * >( &vffi ), &nLength ) ) { - // Got it, so format it - int locMajor(0), locMinor(0), locPatch(0), locBuild(0) ; - locMajor = static_cast<int>(HIWORD(vffi->dwFileVersionMS)); - locMinor = static_cast<int>(LOWORD(vffi->dwFileVersionMS)); - locPatch = static_cast<int>(HIWORD(vffi->dwFileVersionLS)); - locBuild = static_cast<int>(LOWORD(vffi->dwFileVersionLS)); - if (locMajor==nMajor) { - if (locMinor==nMinor) { - if (locPatch==nPatch) { - return locBuild<nBuild ; - } else { - return locPatch<nPatch ; - } - } else { - return locMinor<nMinor ; + // Got it, so format it + int locMajor(0), locMinor(0), locPatch(0), locBuild(0); + locMajor = static_cast< int >( HIWORD( vffi->dwFileVersionMS ) ); + locMinor = static_cast< int >( LOWORD( vffi->dwFileVersionMS ) ); + locPatch = static_cast< int >( HIWORD( vffi->dwFileVersionLS ) ); + locBuild = static_cast< int >( LOWORD( vffi->dwFileVersionLS ) ); + + if( locMajor == nMajor ) + { + if( locMinor == nMinor ) + { + if( locPatch == nPatch ) + return locBuild < nBuild; + else + return locPatch < nPatch; } - } else { - return locMajor<nMajor ; + + else + return locMinor < nMinor ; } + + else + return locMajor < nMajor ; } - } + + // problem with VerQueryValue... maybe updating will fix it. + else + return true; + } } void AutoUpdateSource::AddRequirement(UpdateRequirement reqUpdate) |
From: <no...@us...> - 2003-06-23 06:39:08
|
Log Message: ----------- Delay load Inject.dll if using old-style injection... fixes DenAgent's inject.dll dependency. Modified Files: -------------- /cvsroot/decaldev/source/DenAgent: TrayWnd.cpp DenAgent.vcproj Revision Data ------------- Index: TrayWnd.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DenAgent/TrayWnd.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- TrayWnd.cpp 23 Jun 2003 05:59:42 -0000 1.15 +++ TrayWnd.cpp 23 Jun 2003 06:39:06 -0000 1.16 @@ -23,6 +23,15 @@ bool g_bOldInject; +// Inject Enable/Inject Disable function pointers +typedef void (*VoidNoParams)(); + +VoidNoParams InjEnable = NULL; +VoidNoParams InjDisable = NULL; + +// HMODULE for Inject dll +HMODULE g_hInj = NULL; + // This is for our windows enumeration process BOOL CALLBACK EnumerationCallbackProc( HWND, LPARAM ); CTrayWnd* CTrayWnd::s_pWnd = NULL; @@ -109,8 +118,9 @@ ::AfxMessageBox( _T( "Asheron's Call was started before the Agent.\r\nNo plugins will be installed until Asheron's Call and the agent are exited and restarted.\r\n\r\nThe Agent must be run before Asheron's Call to properly install plugins." ), MB_ICONERROR | MB_OK ); ::PostQuitMessage( 0 ); } - else - { + + else + { RegKey key; DWORD dwOldInj; if( key.Create( HKEY_LOCAL_MACHINE, _T( "SOFTWARE\\Decal" )) != ERROR_SUCCESS ) @@ -126,7 +136,34 @@ if( dwOldInj == 1 ) { g_bOldInject = true; - ::InjectEnable(); + + TCHAR szInjectDll[ MAX_PATH ]; + memset( szInjectDll, 0, sizeof( szInjectDll ) / sizeof( szInjectDll[0] ) ); + + // Open the COM CoClass for IPager to get Inject.dll path + if( key.Open( HKEY_CLASSES_ROOT, _T( "CLSID\\{C79E2F76-06F8-4CD0-A613-4829237D297D}\\InprocServer32" ), KEY_READ ) == ERROR_SUCCESS ) + { + DWORD dwChars = MAX_PATH - 1; + if( key.QueryStringValue( NULL, szInjectDll, &dwChars ) != ERROR_SUCCESS ) + { + ::AfxMessageBox( _T( "There is a serious problem with the Decal Agent registry settings!!\n\nExiting." ), MB_ICONERROR | MB_OK ); + ::PostQuitMessage( 0 ); + } + } + + g_hInj = LoadLibrary( szInjectDll ); + + InjEnable = (VoidNoParams) GetProcAddress( g_hInj, (LPCSTR) 0x00000012 ); + InjDisable = (VoidNoParams) GetProcAddress( g_hInj, (LPCSTR) 0x00000011 ); + + if( !InjEnable || !InjDisable ) + { + ::AfxMessageBox( _T( "Can't load Inject.dll. Please turn off old style injection." ), MB_ICONERROR | MB_OK ); + g_bOldInject = false; + } + + else + ::InjEnable(); } else @@ -190,11 +227,15 @@ if( g_bOldInject ) { if( bEnabled ) - ::InjectDisable(); + ::InjDisable(); + + InjEnable = NULL; + InjDisable = NULL; + FreeLibrary( g_hInj ); } else - if (m_uiTimer) + if( m_uiTimer ) { KillTimer (m_uiTimer); m_uiTimer = 0; @@ -308,7 +349,7 @@ key.Create( HKEY_LOCAL_MACHINE, _T( "SOFTWARE\\Decal" ) ); key.SetDWORDValue("OldInjection", 0x1L); g_bOldInject = true; - ::InjectEnable(); + ::InjEnable(); } else // no @@ -343,7 +384,7 @@ key.Create( HKEY_LOCAL_MACHINE, _T( "SOFTWARE\\Decal" ) ); key.SetDWORDValue("OldInjection", 0x1L); g_bOldInject = true; - ::InjectEnable(); + ::InjEnable(); } else // no Index: DenAgent.vcproj =================================================================== RCS file: /cvsroot/decaldev/source/DenAgent/DenAgent.vcproj,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- DenAgent.vcproj 20 Jun 2003 06:41:19 -0000 1.3 +++ DenAgent.vcproj 23 Jun 2003 06:39:06 -0000 1.4 @@ -46,7 +46,7 @@ <Tool Name="VCLinkerTool" IgnoreImportLibrary="TRUE" - AdditionalDependencies="version.lib shlwapi.lib forcelibrary.lib ..\release\inject.lib" + AdditionalDependencies="version.lib shlwapi.lib forcelibrary.lib" OutputFile=".\..\Release/DenAgent.exe" LinkIncremental="1" SuppressStartupBanner="TRUE" |
From: <no...@us...> - 2003-06-23 05:59:43
|
Log Message: ----------- No more millions of popups on injection failures. Modified Files: -------------- /cvsroot/decaldev/source/DenAgent: TrayWnd.cpp TrayWnd.h Revision Data ------------- Index: TrayWnd.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DenAgent/TrayWnd.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- TrayWnd.cpp 20 Jun 2003 06:41:19 -0000 1.14 +++ TrayWnd.cpp 23 Jun 2003 05:59:42 -0000 1.15 @@ -25,6 +25,7 @@ // This is for our windows enumeration process BOOL CALLBACK EnumerationCallbackProc( HWND, LPARAM ); +CTrayWnd* CTrayWnd::s_pWnd = NULL; ///////////////////////////////////////////////////////////////////////////// // CTrayWnd @@ -32,10 +33,12 @@ CTrayWnd::CTrayWnd() : m_pDialog( NULL ), m_uiTimer( NULL ) { + s_pWnd = this; } CTrayWnd::~CTrayWnd() { + s_pWnd = NULL; } BEGIN_MESSAGE_MAP(CTrayWnd, CWnd) @@ -129,14 +132,14 @@ else { g_bOldInject = false; - m_uiTimer = SetTimer (1, 1000, NULL); + m_uiTimer = SetTimer( 1, 1000, NULL ); } } else { g_bOldInject = false; - m_uiTimer = SetTimer (1, 1000, NULL); + m_uiTimer = SetTimer( 1, 1000, NULL ); } } } @@ -217,10 +220,18 @@ return TRUE; } - if( hwnd != NULL ) + if( CTrayWnd::s_pWnd != NULL ) + return CTrayWnd::s_pWnd->OnEnum( hwnd ); + else + return FALSE; +} + +BOOL CTrayWnd::OnEnum( HWND hWndLobby ) +{ + if( hWndLobby != NULL ) { DWORD dwProcessId = 0; - GetWindowThreadProcessId( hwnd, &dwProcessId ); + GetWindowThreadProcessId( hWndLobby, &dwProcessId ); if( dwProcessId != 0 ) { @@ -263,7 +274,7 @@ char szBuffer[256]; _snprintf( szBuffer, sizeof( szBuffer ), "Couldn't query AgentPath value: 0x%08lx", dwError ); - MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK ); + ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK ); } } @@ -273,7 +284,7 @@ char szBuffer[256]; _snprintf( szBuffer, sizeof( szBuffer ), "Couldn't open HKLM\\Software\\Decal\\Agent key: 0x%08lx", dwError ); - MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK ); + ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK ); } if( szDllPath[0] ) @@ -284,24 +295,28 @@ DWORD dwError = GetLastError(); char szBuffer[256]; -// _snprintf( szBuffer, sizeof( szBuffer ), "ForceLibraryNow (ForceLibrary.dll) failed: 0x%08lx", dwError ); -// MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK ); - _snprintf( szBuffer, sizeof( szBuffer ), "ForceLibraryNow (LobbyHook.dll) has failed( 0x%08lx )\nDo you want to switch to old style injection?\nIf Decal is loading in AC properly answer no.", dwError ); - int iRet = MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_YESNO ); + + // Kill timer to avoid 1000 popups + KillTimer( m_uiTimer ); + m_uiTimer = 0; + + int iRet = ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_YESNO ); if( iRet == IDYES ) { RegKey key; key.Create( HKEY_LOCAL_MACHINE, _T( "SOFTWARE\\Decal" ) ); key.SetDWORDValue("OldInjection", 0x1L); - MessageBox( NULL, "You must restart DenAgent for this option to take effect!", "DenAgent", MB_OK ); - ::PostQuitMessage( 0 ); + g_bOldInject = true; + ::InjectEnable(); } else // no { - MessageBox( NULL, "Restart DenAgent to enable Decal again.", "DenAgent", MB_OK ); - ::PostQuitMessage( 0 ); + //g_bOldInject = false; + //m_uiTimer = SetTimer( 1, 1000, NULL ); + _snprintf( szBuffer, sizeof( szBuffer ), "Lobby Injection halted... restart DenAgent to try again." ); + ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK ); } } @@ -315,24 +330,28 @@ DWORD dwError = GetLastError(); char szBuffer[256]; -// _snprintf( szBuffer, sizeof( szBuffer ), "ForceLibraryNow (LobbyHook.dll) failed: 0x%08lx", dwError ); -// MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK ); - _snprintf( szBuffer, sizeof( szBuffer ), "ForceLibraryNow (LobbyHook.dll) has failed( 0x%08lx )\nDo you want to switch to old style injection?\nIf Decal is loading in AC properly answer no.", dwError ); - int iRet = MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_YESNO ); + + // Kill timer + KillTimer( m_uiTimer ); + m_uiTimer = 0; + + int iRet = ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_YESNO ); if( iRet == IDYES ) { RegKey key; key.Create( HKEY_LOCAL_MACHINE, _T( "SOFTWARE\\Decal" ) ); key.SetDWORDValue("OldInjection", 0x1L); - MessageBox( NULL, "You must restart DenAgent for this option to take effect!", "DenAgent", MB_OK ); - ::PostQuitMessage( 0 ); + g_bOldInject = true; + ::InjectEnable(); } else // no { - MessageBox( NULL, "Restart DenAgent to enable Decal again.", "DenAgent", MB_OK ); - ::PostQuitMessage( 0 ); + //g_bOldInject = false; + //m_uiTimer = SetTimer( 1, 1000, NULL ); + _snprintf( szBuffer, sizeof( szBuffer ), "Lobby Injection halted... restart DenAgent to try again." ); + ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK ); } } } @@ -343,7 +362,7 @@ char szBuffer[256]; _snprintf( szBuffer, sizeof( szBuffer ), "DLL path was blank: 0x%08lx", dwError ); - MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK ); + ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK ); } } @@ -353,7 +372,7 @@ char szBuffer[256]; _snprintf( szBuffer, sizeof( szBuffer ), "Couldn't get process id: 0x%08lx", dwError ); - MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK ); + ::MessageBox( NULL, szBuffer, _T( "DenAgent" ), MB_OK ); } } Index: TrayWnd.h =================================================================== RCS file: /cvsroot/decaldev/source/DenAgent/TrayWnd.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- TrayWnd.h 13 May 2003 07:16:12 -0000 1.4 +++ TrayWnd.h 23 Jun 2003 05:59:42 -0000 1.5 @@ -40,6 +40,9 @@ void UpdateXMLFiles(); + BOOL OnEnum( HWND hWndLobby ); + static CTrayWnd* s_pWnd; + // Generated message map functions protected: //{{AFX_MSG(CTrayWnd) |
From: <no...@us...> - 2003-06-23 04:58:23
|
Log Message: ----------- Silly crash fix Modified Files: -------------- /cvsroot/decaldev/source/DenAgent: DenAgentDlg.cpp Revision Data ------------- Index: DenAgentDlg.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DenAgent/DenAgentDlg.cpp,v retrieving revision 1.35 retrieving revision 1.36 diff -u -d -r1.35 -r1.36 --- DenAgentDlg.cpp 22 Jun 2003 09:05:13 -0000 1.35 +++ DenAgentDlg.cpp 23 Jun 2003 04:58:21 -0000 1.36 @@ -319,6 +319,7 @@ USES_CONVERSION; // Release Decal object so it can be updated. m_pDecal.Release(); + m_pDecal = NULL; CoFreeUnusedLibraries(); RegKey key; @@ -475,7 +476,10 @@ if((bUpdates) && (!m_bDoingUpdate)) { if (MessageBox("Decal has detected that one or more of your plugins are out of date.\n\nWould you like to view the plugin list?",NULL, MB_ICONQUESTION | MB_YESNO) == IDYES) - { + { + HRESULT hRes = ::CoCreateInstance ( __uuidof ( Decal ), NULL, CLSCTX_INPROC_SERVER, __uuidof ( IDecal ), + reinterpret_cast< LPVOID * > ( &m_pDecal ) ); + cAddRemoveDlg ardlg( this ); ardlg.m_pDecal = m_pDecal; ardlg.DoModal(); |
From: <no...@us...> - 2003-06-22 09:05:15
|
Log Message: ----------- Add CoFreeLibrary. Modified Files: -------------- /cvsroot/decaldev/source/DenAgent: DenAgentDlg.cpp Revision Data ------------- Index: DenAgentDlg.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DenAgent/DenAgentDlg.cpp,v retrieving revision 1.34 retrieving revision 1.35 diff -u -d -r1.34 -r1.35 --- DenAgentDlg.cpp 22 Jun 2003 08:44:36 -0000 1.34 +++ DenAgentDlg.cpp 22 Jun 2003 09:05:13 -0000 1.35 @@ -319,6 +319,7 @@ USES_CONVERSION; // Release Decal object so it can be updated. m_pDecal.Release(); + CoFreeUnusedLibraries(); RegKey key; cDownloaderDlg dlg; |
From: <no...@us...> - 2003-06-22 08:44:37
|
Log Message: ----------- Release decal object before doing an update and create an instance afterwards Modified Files: -------------- /cvsroot/decaldev/source/DenAgent: DenAgentDlg.cpp Revision Data ------------- Index: DenAgentDlg.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DenAgent/DenAgentDlg.cpp,v retrieving revision 1.33 retrieving revision 1.34 diff -u -d -r1.33 -r1.34 --- DenAgentDlg.cpp 30 May 2003 01:37:52 -0000 1.33 +++ DenAgentDlg.cpp 22 Jun 2003 08:44:36 -0000 1.34 @@ -63,54 +63,54 @@ { CDialog::OnInitDialog(); - SetForegroundWindow(); - BringWindowToTop(); + SetForegroundWindow(); + BringWindowToTop(); - // Create the decal object - HRESULT hRes = ::CoCreateInstance ( __uuidof ( Decal ), NULL, CLSCTX_INPROC_SERVER, __uuidof ( IDecal ), - reinterpret_cast< LPVOID * > ( &m_pDecal ) ); + // Create the decal object + HRESULT hRes = ::CoCreateInstance ( __uuidof ( Decal ), NULL, CLSCTX_INPROC_SERVER, __uuidof ( IDecal ), + reinterpret_cast< LPVOID * > ( &m_pDecal ) ); - // Set up the list control and image list - m_groups.Create ( IDB_GROUPS, 16, 0, RGB(255,0,255)); - m_wndPlugins.SetImageList ( &m_groups, LVSIL_SMALL ); + // Set up the list control and image list + m_groups.Create ( IDB_GROUPS, 16, 0, RGB(255,0,255)); + m_wndPlugins.SetImageList ( &m_groups, LVSIL_SMALL ); - // Prepare the column list - CRect rcListClient; - m_wndPlugins.GetClientRect ( rcListClient ); + // Prepare the column list + CRect rcListClient; + m_wndPlugins.GetClientRect ( rcListClient ); - CClientDC dcList ( &m_wndPlugins ); - dcList.SelectObject ( m_wndPlugins.GetFont () ); + CClientDC dcList ( &m_wndPlugins ); + dcList.SelectObject ( m_wndPlugins.GetFont () ); - int nVersionWidth = dcList.GetTextExtent ( CString ( _T( "100.00.00.00001" ) ) ).cx; + int nVersionWidth = dcList.GetTextExtent ( CString ( _T( "100.00.00.00001" ) ) ).cx; - m_wndPlugins.InsertColumn ( 0, _T( "Component" ), LVCFMT_LEFT, rcListClient.Width () - nVersionWidth - 16, 0 ); - m_wndPlugins.InsertColumn ( 1, _T( "Version" ), LVCFMT_RIGHT, nVersionWidth, 1 ); + m_wndPlugins.InsertColumn ( 0, _T( "Component" ), LVCFMT_LEFT, rcListClient.Width () - nVersionWidth - 16, 0 ); + m_wndPlugins.InsertColumn ( 1, _T( "Version" ), LVCFMT_RIGHT, nVersionWidth, 1 ); - m_wndPlugins.SetExtendedStyle ( LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP ); + m_wndPlugins.SetExtendedStyle ( LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP ); - if ( FAILED ( hRes ) ) - { - AfxMessageBox ( _T( "Failed to create Decal Object." ) ); - EndDialog ( IDCANCEL ); - return FALSE; - } + if ( FAILED ( hRes ) ) + { + AfxMessageBox ( _T( "Failed to create Decal Object." ) ); + EndDialog ( IDCANCEL ); + return FALSE; + } - loadPluginList (); + loadPluginList (); - // Set the icon into the window for runtime - SetIcon(m_hIcon, TRUE); // Set big icon - SetIcon(m_hIcon, FALSE); // Set small icon + // Set the icon into the window for runtime + SetIcon(m_hIcon, TRUE); // Set big icon + SetIcon(m_hIcon, FALSE); // Set small icon - TCHAR szModule[ MAX_PATH ]; - ::GetModuleFileName ( NULL, szModule, MAX_PATH ); + TCHAR szModule[ MAX_PATH ]; + ::GetModuleFileName ( NULL, szModule, MAX_PATH ); - CString strVersion; - CDenAgentApp::getVersionString ( szModule, strVersion ); - CDenAgentApp::getVersionInfo ( szModule, iReleaseMajor, iReleaseMinor, iBuildMajor, iBuildMinor ); - - SetWindowText( CString("Decal Agent ") + strVersion ); + CString strVersion; + CDenAgentApp::getVersionString ( szModule, strVersion ); + CDenAgentApp::getVersionInfo ( szModule, iReleaseMajor, iReleaseMinor, iBuildMajor, iBuildMinor ); - updateFileInfo(); + SetWindowText( CString("Decal Agent ") + strVersion ); + + updateFileInfo(); return TRUE; // return TRUE unless you set the focus to a control } @@ -124,7 +124,7 @@ { CFile cf; CFileStatus cfs; - + RegKey key; CString strDecalPlugins("decalplugins.xml"); @@ -146,7 +146,7 @@ } else { - + CTime modification_time = cfs.m_mtime; CTime now = CTime::GetCurrentTime (); @@ -157,35 +157,35 @@ OnUpdate(); } } - + cAddRemoveDlg dlg( this ); - dlg.m_pDecal = m_pDecal; - dlg.DoModal (); + dlg.m_pDecal = m_pDecal; + dlg.DoModal (); loadPluginList (); } int CDenAgentDlg::getDragInsertBefore ( CPoint &ptClient ) { - _ASSERTE ( m_pCurrentDrag != NULL ); + _ASSERTE ( m_pCurrentDrag != NULL ); - CRect rc; - m_wndPlugins.GetWindowRect ( rc ); - ScreenToClient ( rc ); + CRect rc; + m_wndPlugins.GetWindowRect ( rc ); + ScreenToClient ( rc ); - ptClient.x = ptClient.x - rc.left; - ptClient.y = ptClient.y - rc.top; + ptClient.x = ptClient.x - rc.left; + ptClient.y = ptClient.y - rc.top; - int nItemHit = m_wndPlugins.HitTest ( ptClient ); + int nItemHit = m_wndPlugins.HitTest ( ptClient ); - if ( nItemHit != -1 ) - { - cPlugin *pPlugin = reinterpret_cast< cPlugin * > ( m_wndPlugins.GetItemData ( nItemHit ) ); - if ( pPlugin != NULL && pPlugin->m_dragimage == m_pCurrentDrag->m_dragimage ) - return nItemHit; - } + if ( nItemHit != -1 ) + { + cPlugin *pPlugin = reinterpret_cast< cPlugin * > ( m_wndPlugins.GetItemData ( nItemHit ) ); + if ( pPlugin != NULL && pPlugin->m_dragimage == m_pCurrentDrag->m_dragimage ) + return nItemHit; + } - return -1; + return -1; } ///////////////////////////////////////////////////////////////////////////// @@ -205,120 +205,122 @@ struct cPluginGroup { - LPCTSTR m_groupName, - m_groupKey; - int m_iconIndex; + LPCTSTR m_groupName, + m_groupKey; + int m_iconIndex; }; void CDenAgentDlg::loadPluginList () { - m_wndPlugins.SetRedraw ( FALSE ); + m_wndPlugins.SetRedraw ( FALSE ); - int nTop = m_wndPlugins.GetTopIndex (); + int nTop = m_wndPlugins.GetTopIndex (); - // Save the original selection - GUID idSelected = GUID_NULL; - { - POSITION pos = m_wndPlugins.GetFirstSelectedItemPosition (); - if ( pos != NULL ) - { - int nSelected = m_wndPlugins.GetNextSelectedItem ( pos ); - cPlugin *pPlugin = reinterpret_cast< cPlugin * > ( m_wndPlugins.GetItemData ( nSelected ) ); - if ( pPlugin != NULL ) - idSelected = pPlugin->m_id; - } - } + // Save the original selection + GUID idSelected = GUID_NULL; + { + POSITION pos = m_wndPlugins.GetFirstSelectedItemPosition (); + if ( pos != NULL ) + { + int nSelected = m_wndPlugins.GetNextSelectedItem ( pos ); + cPlugin *pPlugin = reinterpret_cast< cPlugin * > ( m_wndPlugins.GetItemData ( nSelected ) ); + if ( pPlugin != NULL ) + idSelected = pPlugin->m_id; + } + } - // Erase the contents of the list and collection - m_wndPlugins.DeleteAllItems (); - CDenAgentApp::importV1Plugins (); + // Erase the contents of the list and collection + m_wndPlugins.DeleteAllItems (); + CDenAgentApp::importV1Plugins (); - USES_CONVERSION; + USES_CONVERSION; - static cPluginGroup _groups[] = { - { _T( "Plugins" ), _T( "Plugins" ), 4 }, - { _T( "Network Filters" ), _T( "NetworkFilters" ), 1 }, - { _T( "File Filters" ), _T( "FileFilters" ), 1 }, - { _T( "Services" ), _T( "Services" ), 0 }, - { _T( "Surrogates" ), _T( "Surrogates" ), 3 }, - { _T( "Input Actions" ), _T( "InputActions" ), 2 } }, - *_end_groups = _groups + sizeof ( _groups ) / sizeof ( cPluginGroup ); + static cPluginGroup _groups[] = { + { _T( "Plugins" ), _T( "Plugins" ), 4 }, + { _T( "Network Filters" ), _T( "NetworkFilters" ), 1 }, + { _T( "File Filters" ), _T( "FileFilters" ), 1 }, + { _T( "Services" ), _T( "Services" ), 0 }, + { _T( "Surrogates" ), _T( "Surrogates" ), 3 }, + { _T( "Input Actions" ), _T( "InputActions" ), 2 } }, + *_end_groups = _groups + sizeof ( _groups ) / sizeof ( cPluginGroup ); - int nCount = 0; - for ( cPluginGroup *i = _groups; i != _end_groups; ++ i ) - { - int nGroup = m_wndPlugins.InsertItem ( LVIF_IMAGE | LVIF_TEXT, nCount ++, i->m_groupName, 0, - 0, i->m_iconIndex, 0 ); + int nCount = 0; + for ( cPluginGroup *i = _groups; i != _end_groups; ++ i ) + { + int nGroup = m_wndPlugins.InsertItem ( LVIF_IMAGE | LVIF_TEXT, nCount ++, i->m_groupName, 0, + 0, i->m_iconIndex, 0 ); - CComPtr<IDecalEnum> pEnum; - HRESULT hRes = m_pDecal->get_Configuration ( _bstr_t ( i->m_groupKey ), GUID_NULL, &pEnum ); - _ASSERTE( SUCCEEDED ( hRes ) ); + CComPtr<IDecalEnum> pEnum; + HRESULT hRes = m_pDecal->get_Configuration ( _bstr_t ( i->m_groupKey ), GUID_NULL, &pEnum ); + _ASSERTE( SUCCEEDED ( hRes ) ); - while ( pEnum->Next () == S_OK ) - { - CLSID clsid; - hRes = pEnum->get_ComClass ( &clsid ); - _ASSERTE ( SUCCEEDED ( hRes ) ); + while ( pEnum->Next () == S_OK ) + { + CLSID clsid; + hRes = pEnum->get_ComClass ( &clsid ); + _ASSERTE ( SUCCEEDED ( hRes ) ); - VARIANT_BOOL bEnabled; - hRes = pEnum->get_Enabled ( &bEnabled ); - _ASSERTE ( SUCCEEDED ( hRes ) ); + VARIANT_BOOL bEnabled; + hRes = pEnum->get_Enabled ( &bEnabled ); + _ASSERTE ( SUCCEEDED ( hRes ) ); - int nState = ( clsid == idSelected ) ? LVIS_SELECTED | LVIS_FOCUSED : 0; + int nState = ( clsid == idSelected ) ? LVIS_SELECTED | LVIS_FOCUSED : 0; - LVITEM lvi = { LVIF_STATE | LVIF_IMAGE | LVIF_INDENT | LVIF_PARAM | LVIF_TEXT, nCount ++, 0, - nState, nState, NULL, -1, ( bEnabled ) ? 6 : 5, reinterpret_cast< LPARAM > ( new cPlugin ( clsid, i->m_groupKey, !!bEnabled, i->m_iconIndex ) ), 1 }; + LVITEM lvi = { LVIF_STATE | LVIF_IMAGE | LVIF_INDENT | LVIF_PARAM | LVIF_TEXT, nCount ++, 0, + nState, nState, NULL, -1, ( bEnabled ) ? 6 : 5, reinterpret_cast< LPARAM > ( new cPlugin ( clsid, i->m_groupKey, !!bEnabled, i->m_iconIndex ) ), 1 }; - CComBSTR strName; - if ( SUCCEEDED ( pEnum->get_FriendlyName( &strName ) ) ) - lvi.pszText = OLE2T ( strName ); - else - { - LPOLESTR szProgID; - if ( FAILED ( ::ProgIDFromCLSID ( clsid, &szProgID ) ) ) - { - hRes = ::StringFromCLSID ( clsid, &szProgID ); - _ASSERTE ( SUCCEEDED ( hRes ) ); - } + CComBSTR strName; + if ( SUCCEEDED ( pEnum->get_FriendlyName( &strName ) ) ) + lvi.pszText = OLE2T ( strName ); + else + { + LPOLESTR szProgID; + if ( FAILED ( ::ProgIDFromCLSID ( clsid, &szProgID ) ) ) + { + hRes = ::StringFromCLSID ( clsid, &szProgID ); + _ASSERTE ( SUCCEEDED ( hRes ) ); + } - // This *must* succeed - lvi.pszText = OLE2T ( szProgID ); - ::CoTaskMemFree ( szProgID ); - } + // This *must* succeed + lvi.pszText = OLE2T ( szProgID ); + ::CoTaskMemFree ( szProgID ); + } - lvi.cchTextMax = ::_tcslen ( lvi.pszText ); - int nItem = m_wndPlugins.InsertItem ( &lvi ); + lvi.cchTextMax = ::_tcslen ( lvi.pszText ); + int nItem = m_wndPlugins.InsertItem ( &lvi ); - // Load the version info - CString strDLL; - if ( !CDenAgentApp::getCOMObjectDLL ( clsid, strDLL ) ) - { - m_wndPlugins.SetItemText ( nItem, 1, _T( "<No DLL>" ) ); - continue; - } + // Load the version info + CString strDLL; + if ( !CDenAgentApp::getCOMObjectDLL ( clsid, strDLL ) ) + { + m_wndPlugins.SetItemText ( nItem, 1, _T( "<No DLL>" ) ); + continue; + } - CString strDLLVersion; - if ( !CDenAgentApp::getVersionString ( strDLL, strDLLVersion ) ) - m_wndPlugins.SetItemText ( nItem, 1, _T( "<No Version>" ) ); - else - m_wndPlugins.SetItemText ( nItem, 1, strDLLVersion ); - } - } + CString strDLLVersion; + if ( !CDenAgentApp::getVersionString ( strDLL, strDLLVersion ) ) + m_wndPlugins.SetItemText ( nItem, 1, _T( "<No Version>" ) ); + else + m_wndPlugins.SetItemText ( nItem, 1, strDLLVersion ); + } + } - m_wndPlugins.SetRedraw ( TRUE ); - m_wndPlugins.Invalidate (); + m_wndPlugins.SetRedraw ( TRUE ); + m_wndPlugins.Invalidate (); - // Scroll back to the top index of before - RECT rc; - m_wndPlugins.GetItemRect ( 0, &rc, LVIR_BOUNDS ); - m_wndPlugins.Scroll ( CSize ( 0, ( rc.bottom - rc.top ) * nTop ) ); + // Scroll back to the top index of before + RECT rc; + m_wndPlugins.GetItemRect ( 0, &rc, LVIR_BOUNDS ); + m_wndPlugins.Scroll ( CSize ( 0, ( rc.bottom - rc.top ) * nTop ) ); } void CDenAgentDlg::OnUpdate() { USES_CONVERSION; + // Release Decal object so it can be updated. + m_pDecal.Release(); RegKey key; - + cDownloaderDlg dlg; bool bUpdates = false; @@ -482,8 +484,11 @@ } m_bDoingUpdate = false; - + updateFileInfo (); + + HRESULT hRes = ::CoCreateInstance ( __uuidof ( Decal ), NULL, CLSCTX_INPROC_SERVER, __uuidof ( IDecal ), + reinterpret_cast< LPVOID * > ( &m_pDecal ) ); } void CDenAgentDlg::OnOptions() @@ -494,14 +499,14 @@ void CDenAgentDlg::convertVersion( LPTSTR szVersion, DWORD &dwVersionMajor, DWORD &dwVersionMinor ) { - int wVersionParts[ 4 ], - *i_ver = wVersionParts; + int wVersionParts[ 4 ], + *i_ver = wVersionParts; - for( TCHAR *szVersionPart = ::_tcstok( szVersion, _T( "." ) ); szVersionPart != NULL; szVersionPart = ::_tcstok( NULL, _T( "." ) ), ++ i_ver ) - ::_stscanf( szVersionPart, _T( "%i" ), i_ver ); + for( TCHAR *szVersionPart = ::_tcstok( szVersion, _T( "." ) ); szVersionPart != NULL; szVersionPart = ::_tcstok( NULL, _T( "." ) ), ++ i_ver ) + ::_stscanf( szVersionPart, _T( "%i" ), i_ver ); - dwVersionMajor = MAKELONG( wVersionParts[ 1 ], wVersionParts[ 0 ] ); - dwVersionMinor = MAKELONG( wVersionParts[ 3 ], wVersionParts[ 2 ] ); + dwVersionMajor = MAKELONG( wVersionParts[ 1 ], wVersionParts[ 0 ] ); + dwVersionMinor = MAKELONG( wVersionParts[ 3 ], wVersionParts[ 2 ] ); } ///////////////////////////////////////////////////////////////////////////// @@ -509,26 +514,26 @@ void CDenAgentDlg::updateFileInfo(void) { - struct cFiles - { - LPCTSTR szFilename; - LPCTSTR szRootElement; - LPCTSTR szVElement; - UINT nDlgID; - }; + struct cFiles + { + LPCTSTR szFilename; + LPCTSTR szRootElement; + LPCTSTR szVElement; + UINT nDlgID; + }; - static cFiles files[] = { - { _T( "messages.xml" ), _T("schema"), _T("revision"), IDC_MESSAGES_TEXT }, - { _T( "memlocs.xml" ), _T(""), _T("locations"), IDC_MEMLOCS_TEXT }, - { _T( "decalplugins.xml" ), _T(""), _T(""), IDC_DECALPLUGINS_TEXT } }, - *end_files = files + sizeof ( files ) / sizeof ( cFiles ); + static cFiles files[] = { + { _T( "messages.xml" ), _T("schema"), _T("revision"), IDC_MESSAGES_TEXT }, + { _T( "memlocs.xml" ), _T(""), _T("locations"), IDC_MEMLOCS_TEXT }, + { _T( "decalplugins.xml" ), _T(""), _T(""), IDC_DECALPLUGINS_TEXT } }, + *end_files = files + sizeof ( files ) / sizeof ( cFiles ); - for ( cFiles *i = files; i != end_files; ++ i ) - { - CString strFileInfo; - GetFileInfoBase ( i->szFilename, i->szRootElement, i->szVElement, strFileInfo ); - SetDlgItemText ( i->nDlgID, strFileInfo ); - } + for ( cFiles *i = files; i != end_files; ++ i ) + { + CString strFileInfo; + GetFileInfoBase ( i->szFilename, i->szRootElement, i->szVElement, strFileInfo ); + SetDlgItemText ( i->nDlgID, strFileInfo ); + } } @@ -614,8 +619,8 @@ { NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; - // Clear the plugin - delete reinterpret_cast< cPlugin * > ( pNMListView->lParam ); + // Clear the plugin + delete reinterpret_cast< cPlugin * > ( pNMListView->lParam ); *pResult = 0; } @@ -623,34 +628,34 @@ void CDenAgentDlg::OnClickPlugins(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; - LPNMITEMACTIVATE pItemActivate = reinterpret_cast< LPNMITEMACTIVATE > ( pNMHDR ); + LPNMITEMACTIVATE pItemActivate = reinterpret_cast< LPNMITEMACTIVATE > ( pNMHDR ); - if ( pItemActivate->iItem == -1 || pItemActivate->lParam == 0 ) - // A plugin item was not hit - return; + if ( pItemActivate->iItem == -1 || pItemActivate->lParam == 0 ) + // A plugin item was not hit + return; - // Hit test to see if the icon was hit (checkbox) - if ( pItemActivate->ptAction.x < 16 || pItemActivate->ptAction.x > 32 ) - return; + // Hit test to see if the icon was hit (checkbox) + if ( pItemActivate->ptAction.x < 16 || pItemActivate->ptAction.x > 32 ) + return; - // Invert the check - cPlugin *pPlugin = reinterpret_cast< cPlugin * > ( m_wndPlugins.GetItemData ( pItemActivate->iItem ) ); - CComPtr< IDecalEnum > pEnum; + // Invert the check + cPlugin *pPlugin = reinterpret_cast< cPlugin * > ( m_wndPlugins.GetItemData ( pItemActivate->iItem ) ); + CComPtr< IDecalEnum > pEnum; - if (pPlugin && SUCCEEDED ( m_pDecal->get_Configuration ( _bstr_t ( pPlugin->m_group ), pPlugin->m_id, &pEnum ) ) ) - { - pPlugin->m_bEnabled = !pPlugin->m_bEnabled; + if (pPlugin && SUCCEEDED ( m_pDecal->get_Configuration ( _bstr_t ( pPlugin->m_group ), pPlugin->m_id, &pEnum ) ) ) + { + pPlugin->m_bEnabled = !pPlugin->m_bEnabled; - // Write the registry and the icons - pEnum->put_Enabled ( ( pPlugin->m_bEnabled ) ? VARIANT_TRUE : VARIANT_FALSE ); + // Write the registry and the icons + pEnum->put_Enabled ( ( pPlugin->m_bEnabled ) ? VARIANT_TRUE : VARIANT_FALSE ); - LVITEM lvi = { LVIF_IMAGE, pItemActivate->iItem, 0, 0, 0, NULL, 0, - ( pPlugin->m_bEnabled ) ? 6 : 5, }; - m_wndPlugins.SetItem ( &lvi ); - } - else - // Bad data in the list - refresh - loadPluginList (); + LVITEM lvi = { LVIF_IMAGE, pItemActivate->iItem, 0, 0, 0, NULL, 0, + ( pPlugin->m_bEnabled ) ? 6 : 5, }; + m_wndPlugins.SetItem ( &lvi ); + } + else + // Bad data in the list - refresh + loadPluginList (); } void CDenAgentDlg::OnBegindragPlugins(NMHDR* pNMHDR, LRESULT* pResult) @@ -658,66 +663,66 @@ *pResult = 0; NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; - // Check if this item is valid for dragging - if ( pNMListView->iItem == -1 ) - return; + // Check if this item is valid for dragging + if ( pNMListView->iItem == -1 ) + return; - cPlugin *pPlugin = reinterpret_cast< cPlugin * > ( m_wndPlugins.GetItemData ( pNMListView->iItem ) ); - if ( pPlugin == NULL ) - return; + cPlugin *pPlugin = reinterpret_cast< cPlugin * > ( m_wndPlugins.GetItemData ( pNMListView->iItem ) ); + if ( pPlugin == NULL ) + return; - m_wndPlugins.SetItemState ( pNMListView->iItem, LVIS_SELECTED, LVIS_SELECTED ); - m_hDragImage = ListView_CreateDragImage ( m_wndPlugins.m_hWnd, pNMListView->iItem, &CPoint ( 0, 0 ) ); + m_wndPlugins.SetItemState ( pNMListView->iItem, LVIS_SELECTED, LVIS_SELECTED ); + m_hDragImage = ListView_CreateDragImage ( m_wndPlugins.m_hWnd, pNMListView->iItem, &CPoint ( 0, 0 ) ); - CRect rcItem; - m_wndPlugins.GetItemRect ( pNMListView->iItem, rcItem, LVIR_BOUNDS ); + CRect rcItem; + m_wndPlugins.GetItemRect ( pNMListView->iItem, rcItem, LVIR_BOUNDS ); - ImageList_BeginDrag ( m_hDragImage, 0, pNMListView->ptAction.x - rcItem.left, pNMListView->ptAction.y - rcItem.top ); - ImageList_DragEnter ( m_wndPlugins.m_hWnd, pNMListView->ptAction.x, pNMListView->ptAction.y ); + ImageList_BeginDrag ( m_hDragImage, 0, pNMListView->ptAction.x - rcItem.left, pNMListView->ptAction.y - rcItem.top ); + ImageList_DragEnter ( m_wndPlugins.m_hWnd, pNMListView->ptAction.x, pNMListView->ptAction.y ); - m_pCurrentDrag = pPlugin; + m_pCurrentDrag = pPlugin; - SetCapture (); + SetCapture (); } void CDenAgentDlg::OnMouseMove(UINT nFlags, CPoint point) { - if ( m_pCurrentDrag != NULL ) - { - SetCursor ( ::LoadCursor ( NULL, ( getDragInsertBefore ( point ) == -1 ) ? IDC_NO : IDC_ARROW ) ); - ImageList_DragMove ( point.x, point.y ); - } + if ( m_pCurrentDrag != NULL ) + { + SetCursor ( ::LoadCursor ( NULL, ( getDragInsertBefore ( point ) == -1 ) ? IDC_NO : IDC_ARROW ) ); + ImageList_DragMove ( point.x, point.y ); + } CDialog::OnMouseMove(nFlags, point); } void CDenAgentDlg::OnLButtonUp(UINT nFlags, CPoint point) { - if ( m_pCurrentDrag != NULL ) - { - ImageList_DragLeave ( m_wndPlugins.m_hWnd ); - ImageList_EndDrag (); - ImageList_Destroy ( m_hDragImage ); + if ( m_pCurrentDrag != NULL ) + { + ImageList_DragLeave ( m_wndPlugins.m_hWnd ); + ImageList_EndDrag (); + ImageList_Destroy ( m_hDragImage ); - ReleaseCapture (); + ReleaseCapture (); - int nInsertBefore = getDragInsertBefore ( point ); - if ( nInsertBefore != -1 ) - { - { - CComPtr< IDecalEnum > pEnum; - if ( SUCCEEDED ( m_pDecal->get_Configuration ( _bstr_t ( m_pCurrentDrag->m_group ), GUID_NULL, &pEnum ) ) ) - { - if ( SUCCEEDED ( pEnum->Skip ( m_pCurrentDrag->m_id ) ) ) - pEnum->MoveBefore ( reinterpret_cast< cPlugin * > ( m_wndPlugins.GetItemData ( nInsertBefore ) )->m_id ); - } - } + int nInsertBefore = getDragInsertBefore ( point ); + if ( nInsertBefore != -1 ) + { + { + CComPtr< IDecalEnum > pEnum; + if ( SUCCEEDED ( m_pDecal->get_Configuration ( _bstr_t ( m_pCurrentDrag->m_group ), GUID_NULL, &pEnum ) ) ) + { + if ( SUCCEEDED ( pEnum->Skip ( m_pCurrentDrag->m_id ) ) ) + pEnum->MoveBefore ( reinterpret_cast< cPlugin * > ( m_wndPlugins.GetItemData ( nInsertBefore ) )->m_id ); + } + } - loadPluginList (); - } + loadPluginList (); + } - m_pCurrentDrag = NULL; - } + m_pCurrentDrag = NULL; + } CDialog::OnLButtonUp(nFlags, point); } @@ -736,7 +741,7 @@ */ USES_CONVERSION; - + int nSelMark = m_wndPlugins.GetSelectionMark(); if ( nSelMark == -1 ) return; @@ -751,7 +756,7 @@ return; //load up the decal registry and remove this entry - RegKey keyPlugin; + RegKey keyPlugin; CString decalPluginKey; BSTR sClsid; |
From: <no...@us...> - 2003-06-22 08:44:05
|
Log Message: ----------- Update for queue Modified Files: -------------- /cvsroot/decaldev/source/DecalFilters: IdentifyQueue.h IdentifyQueue.cpp Revision Data ------------- Index: IdentifyQueue.h =================================================================== RCS file: /cvsroot/decaldev/source/DecalFilters/IdentifyQueue.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- IdentifyQueue.h 20 Jun 2003 10:48:00 -0000 1.6 +++ IdentifyQueue.h 22 Jun 2003 08:44:04 -0000 1.7 @@ -33,6 +33,7 @@ { m_bWaiting = false; m_lAttempts = 0; + m_lLastManualAttempt = 0; } DECLARE_REGISTRY_RESOURCEID(IDR_IDENTIFYQUEUE) @@ -53,14 +54,15 @@ IDContainer m_Queue; bool m_bWaiting; long m_lAttempts; + long m_lLastManualAttempt; // Id Func pointer - RequestPtr m_pRequest; + RequestPtr m_pfRequestFunc; - void DoGameEvent( IMessageIterator *pMembers ); - void DoIDItem( IMessageIterator *pMembers ); + void MsgGameEvent( IMessageIterator *pMembers ); + void MsgIDItem( IMessageIterator *pMembers ); - void Request(); + void Request(); public: // INetworkFilterImpl Index: IdentifyQueue.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalFilters/IdentifyQueue.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- IdentifyQueue.cpp 20 Jun 2003 12:37:12 -0000 1.15 +++ IdentifyQueue.cpp 22 Jun 2003 08:44:04 -0000 1.16 @@ -31,7 +31,7 @@ long lRequestIDMemloc; if( m_pHooks->QueryMemLoc( _bstr_t( "RequestID" ), &lRequestIDMemloc ) == S_OK ) { - m_pRequest = reinterpret_cast< RequestPtr >( lRequestIDMemloc ); + m_pfRequestFunc = reinterpret_cast< RequestPtr >( lRequestIDMemloc ); return S_OK; } } @@ -46,7 +46,7 @@ m_pDecal.Release(); m_pHooks.Release(); - m_pRequest = NULL; + m_pfRequestFunc = NULL; return S_OK; } @@ -61,7 +61,7 @@ switch( lType ) { - case msgGameEvent: DoGameEvent( pMembers ); break; + case msgGameEvent: MsgGameEvent( pMembers ); break; } if( m_Queue.empty() ) @@ -116,6 +116,8 @@ STDMETHODIMP CIdentifyQueue::ShortcircuitID( long lObjectID ) { + m_lLastManualAttempt = lObjectID; + if( !m_Queue.empty() ) { for( IDContainer::iterator pDeque = m_Queue.begin(); pDeque != m_Queue.end(); ++pDeque ) @@ -139,18 +141,18 @@ return S_OK; } -void CIdentifyQueue::DoGameEvent( IMessageIterator *pMembers ) +void CIdentifyQueue::MsgGameEvent( IMessageIterator *pMembers ) { long lEvent; pMembers->get_NextInt( _bstr_t( "event" ), &lEvent ); switch( lEvent ) { - case gevIDItem: DoIDItem( pMembers ); break; + case gevIDItem: MsgIDItem( pMembers ); break; } } -void CIdentifyQueue::DoIDItem( IMessageIterator *pMembers ) +void CIdentifyQueue::MsgIDItem( IMessageIterator *pMembers ) { if( m_Queue.empty() ) return; @@ -178,18 +180,28 @@ void CIdentifyQueue::Request() { - if( m_Queue.empty() ) - { - m_pRequest( 0 ); - return; - } - if( !m_bWaiting ) { - m_pRequest( m_Queue[0]->lObjectID ); + if( m_Queue.empty() ) + { + if( m_lLastManualAttempt != 0 ) + { + m_pfRequestFunc( m_lLastManualAttempt ); + m_bWaiting = true; + } + + else + m_pfRequestFunc( 0 ); + + return; + } + + IDStruct *pQueueBegin = *m_Queue.begin(); + + m_pfRequestFunc( pQueueBegin->lObjectID ); m_bWaiting = true; - if( m_Queue[0]->lObjectID == 0 ) + if( pQueueBegin->lObjectID == 0 ) { m_bWaiting = false; m_Queue.erase( m_Queue.begin() ); |
From: <no...@us...> - 2003-06-20 20:19:12
|
Log Message: ----------- Changes to updater to check requirements on files Still needs to be able to handle files in use Modified Files: -------------- /cvsroot/decaldev/source/DenAgent: AutoUpdate.h AutoUpdate.cpp Revision Data ------------- Index: AutoUpdate.h =================================================================== RCS file: /cvsroot/decaldev/source/DenAgent/AutoUpdate.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- AutoUpdate.h 27 May 2002 17:39:28 -0000 1.3 +++ AutoUpdate.h 20 Jun 2003 20:19:11 -0000 1.4 @@ -24,6 +24,15 @@ AU_TYPE_BETADLL }; +class UpdateRequirement +{ +public: + UpdateRequirement(std::string File, std::string Version): + sFile(File), sVers(Version) { } + std::string sFile; + std::string sVers; +}; + class AutoUpdateSource { public: AutoUpdateSource(std::string decalPath, AutoUpdateType type, std::string localTarget, std::string remoteSource, std::string requiredVersion); @@ -32,6 +41,8 @@ std::string getSource(); std::string getDestination(); AutoUpdateType getType(); + bool isOutDatedVersion(std::string sFile, int nMajor, int nMinor, int nPatch, int nBuild); + void AddRequirement(UpdateRequirement reqUpdate); private: std::string m_LocalTarget; @@ -39,6 +50,7 @@ std::string m_RequiredVersion; std::string m_DecalDir; AutoUpdateType m_Type; + std::vector<UpdateRequirement> m_Requirements; }; class AutoUpdate { Index: AutoUpdate.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DenAgent/AutoUpdate.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- AutoUpdate.cpp 23 May 2003 02:20:47 -0000 1.9 +++ AutoUpdate.cpp 20 Jun 2003 20:19:11 -0000 1.10 @@ -81,7 +81,6 @@ if (OpenFile(localTarget.c_str(), &targetFile, OF_EXIST) == HFILE_ERROR) { // It didn't exist, we must update - return true; } @@ -132,42 +131,28 @@ return true ; // if error reading xml, assume needs updating } } else if (m_Type == AU_TYPE_DLL || m_Type == AU_TYPE_BETADLL) { - // Extract the DLL version - DWORD dwDummy, dwVerSize; - - dwVerSize = ::GetFileVersionInfoSize(const_cast<LPTSTR>(localTarget.c_str()), &dwDummy); - - if (dwVerSize == 0) { - return true; // if file vsn not available, assume needs updating - } else { - BYTE *pbVersionInfo = reinterpret_cast< BYTE * >(::_alloca(dwVerSize)); - - ::GetFileVersionInfo(const_cast<LPTSTR>(localTarget.c_str()), 0, dwVerSize, pbVersionInfo); - - VS_FIXEDFILEINFO *vffi; - UINT nLength = sizeof(VS_FIXEDFILEINFO); - - if(::VerQueryValue(pbVersionInfo, _T("\\"), reinterpret_cast<LPVOID *>(&vffi), &nLength)) { - // Got it, so format it - int locMajor(0), locMinor(0), locPatch(0), locBuild(0) ; - locMajor = static_cast<int>(HIWORD(vffi->dwFileVersionMS)); - locMinor = static_cast<int>(LOWORD(vffi->dwFileVersionMS)); - locPatch = static_cast<int>(HIWORD(vffi->dwFileVersionLS)); - locBuild = static_cast<int>(LOWORD(vffi->dwFileVersionLS)); - if (locMajor==reqMajor) { - if (locMinor==reqMinor) { - if (locPatch==reqPatch) { - return locBuild<reqBuild ; - } else { - return locPatch<reqPatch ; - } - } else { - return locMinor<reqMinor ; - } - } else { - return locMajor<reqMajor ; + // Check to see if the file itself needs updating + if (isOutDatedVersion(localTarget, reqMajor, reqMinor, reqPatch, reqBuild)) + { + // File is outdated, check requirements + std::vector<UpdateRequirement>::iterator it; + for (it = m_Requirements.begin(); it != m_Requirements.end(); ++it) + { + UpdateRequirement ur = *it; + localTarget = m_DecalDir + "/" + ur.sFile; + sscanf(ur.sVers.c_str(), "%i.%i.%i.%i", &reqMajor, &reqMinor, &reqPatch, &reqBuild); + if (isOutDatedVersion(localTarget, reqMajor, reqMinor, reqPatch, reqBuild)) + { + std::string sMsg = m_LocalTarget + " cannot be updated because one or more dependencies is outdated"; + ::MessageBox(0, _T(sMsg.c_str()), NULL, S_OK); + return false; } } + return true; + } + else // File is newer, ignore requirements and exit + { + return false; } } // if anything went wrong or we were unable to tell whether it should be updated @@ -187,6 +172,54 @@ return m_Type; } +bool AutoUpdateSource::isOutDatedVersion(std::string sFile, int nMajor, int nMinor, int nPatch, int nBuild) +{ + // Extract the DLL version + DWORD dwDummy, dwVerSize; + + dwVerSize = ::GetFileVersionInfoSize(const_cast<LPTSTR>(sFile.c_str()), &dwDummy); + + if (dwVerSize == 0) + { + return true; // if file vsn not available, assume needs updating + } else { + BYTE *pbVersionInfo = reinterpret_cast< BYTE * >(::_alloca(dwVerSize)); + + ::GetFileVersionInfo(const_cast<LPTSTR>(sFile.c_str()), 0, dwVerSize, pbVersionInfo); + + VS_FIXEDFILEINFO *vffi; + UINT nLength = sizeof(VS_FIXEDFILEINFO); + + if(::VerQueryValue(pbVersionInfo, _T("\\"), reinterpret_cast<LPVOID *>(&vffi), &nLength)) + { + // Got it, so format it + int locMajor(0), locMinor(0), locPatch(0), locBuild(0) ; + locMajor = static_cast<int>(HIWORD(vffi->dwFileVersionMS)); + locMinor = static_cast<int>(LOWORD(vffi->dwFileVersionMS)); + locPatch = static_cast<int>(HIWORD(vffi->dwFileVersionLS)); + locBuild = static_cast<int>(LOWORD(vffi->dwFileVersionLS)); + if (locMajor==nMajor) { + if (locMinor==nMinor) { + if (locPatch==nPatch) { + return locBuild<nBuild ; + } else { + return locPatch<nPatch ; + } + } else { + return locMinor<nMinor ; + } + } else { + return locMajor<nMajor ; + } + } + } +} + +void AutoUpdateSource::AddRequirement(UpdateRequirement reqUpdate) +{ + m_Requirements.push_back(reqUpdate); +} + // AutoUpdate AutoUpdate::AutoUpdate(std::string decalDir) { @@ -297,6 +330,39 @@ version = OLE2T(bResult); AutoUpdateSource aUSource(m_DecalDir, type, localFile, remoteFile, version); + //if the source is dll || beta check for requirements + if (type == AU_TYPE_DLL || type == AU_TYPE_BETADLL) + { + MSXML::IXMLDOMNodeListPtr xmlReqs = NULL;//xmlFile->selectNodes(_T("requirement")); //pDoc->selectNodes(_T("/updatelist/file")); + xmlReqs = xmlFile->getElementsByTagName(_T("requirement")); + + if (xmlReqs.GetInterfacePtr() == NULL) + continue; + + for (MSXML::IXMLDOMElementPtr xmlNode = xmlReqs->nextNode(); xmlNode.GetInterfacePtr() != NULL; xmlNode = xmlReqs->nextNode()) + { + std::string sLocalFile, sVersion; + + // Read the file name + vResult = xmlNode->getAttribute("file"); + if (vResult.vt != VT_BSTR) + continue; + + bResult = vResult.bstrVal; + sLocalFile = OLE2T(bResult); + + // Read the version + vResult = xmlNode->getAttribute("version"); + if (vResult.vt != VT_BSTR) + continue; + + bResult = vResult.bstrVal; + sVersion = OLE2T(bResult); + + UpdateRequirement uReq(sLocalFile, sVersion); + aUSource.AddRequirement(uReq); + } + } // Add the source to the cache m_RemoteSources.push_back(aUSource); } |
From: <no...@us...> - 2003-06-20 14:25:11
|
Log Message: ----------- shortcircuit works with queue off Modified Files: -------------- /cvsroot/decaldev/source/Decal: ACHooks.cpp ACHooks.h Revision Data ------------- Index: ACHooks.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Decal/ACHooks.cpp,v retrieving revision 1.57 retrieving revision 1.58 diff -u -d -r1.57 -r1.58 --- ACHooks.cpp 20 Jun 2003 12:36:17 -0000 1.57 +++ ACHooks.cpp 20 Jun 2003 14:25:10 -0000 1.58 @@ -2023,6 +2023,12 @@ Fire_OnSelectItem( dwID ); } +void cACHooks::InternalShortcircuit( DWORD dwID ) +{ + if( m_bIdQueueRef ) + m_pIdQueue->ShortcircuitID( dwID ); +} + void OnObjectDestroyed (DWORD dwGuid) { if( cACHooks::s_pACHooks ) @@ -2038,7 +2044,7 @@ void Shortcircuit( DWORD dwID ) { if( cACHooks::s_pACHooks ) - cACHooks::s_pACHooks->m_pIdQueue->ShortcircuitID( dwID ); + cACHooks::s_pACHooks->InternalShortcircuit( dwID ); } void __declspec(naked) SelectItemHook() Index: ACHooks.h =================================================================== RCS file: /cvsroot/decaldev/source/Decal/ACHooks.h,v retrieving revision 1.42 retrieving revision 1.43 diff -u -d -r1.42 -r1.43 --- ACHooks.h 20 Jun 2003 12:36:17 -0000 1.42 +++ ACHooks.h 20 Jun 2003 14:25:10 -0000 1.43 @@ -250,6 +250,7 @@ static cACHooks* s_pACHooks; void InternalObjectDestroyed( DWORD dwGuid ); void InternalSelectItem( DWORD dwID ); + void InternalShortcircuit( DWORD dwID ); bool InternalChatText( char *szText ); bool InternalChatMessage( char *szText, long lColor ); void SetHookEx(enum eAvailableHooksEx HookID); |