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: Jeffrey D. <ha...@us...> - 2003-10-07 02:30:56
|
Log Message: ----------- fix list overflows Modified Files: -------------- /cvsroot/decaldev/source/DecalControls: List.cpp Revision Data ------------- Index: List.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalControls/List.cpp,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- List.cpp 3 Jan 2003 04:49:33 -0000 1.21 +++ List.cpp 7 Oct 2003 02:30:52 -0000 1.22 @@ -214,14 +214,23 @@ { _ASSERTE( m_cols.size() > 0 ); _ASSERTE( nX >= 0 ); - _ASSERTE( nX < m_cols.back().m_nDataRight ); + _ASSERTE( nX < m_cols.back().m_nDataRight ); _ASSERTE( nSubValue >= 0 ); _ASSERTE( nSubValue < ( m_cols[ nX ].m_nDataRight - m_cols[ nX ].m_nDataLeft ) ); _ASSERTE( nY >= 0 ); _ASSERTE( nY < m_rows.size() ); _ASSERTE( newVal != NULL ); + if( nY >= m_rows.size() ) + return E_FAIL; + cRow &rowData = m_rows[ nY ]; + + long lDataColumns = 0; + m_cols[ nX ].m_pColumn->get_DataColumns( &lDataColumns ); + + if( nSubValue > lDataColumns ) + return E_FAIL; HRESULT hRes = ::VariantCopy( rowData.m_pData + ( m_cols[ nX ].m_nDataLeft + nSubValue ), newVal ); _ASSERTE( SUCCEEDED( hRes ) ); |
From: BJ H. <par...@us...> - 2003-10-06 00:22:12
|
Log Message: ----------- fix for missing icons, thanks gkusnick. Modified Files: -------------- /cvsroot/decaldev/source/Inject: View.cpp Revision Data ------------- Index: View.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/View.cpp,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- View.cpp 5 Oct 2003 18:00:41 -0000 1.29 +++ View.cpp 6 Oct 2003 00:22:10 -0000 1.30 @@ -115,7 +115,7 @@ // _ASSERTE( vIcon.vt != VT_NULL ); m_VP.icon = ( vIcon.vt != VT_NULL ) ? static_cast< long >( vIcon ) : 0; // Para: shouldn't add 0x06000000 if there's an iconlibrary - if (m_VP.iconLibrary == 0) + if (m_VP.iconLibrary == 0 && m_VP.icon != 0) m_VP.icon += 0x06000000; if(vLeft.vt == VT_NULL) |
From: John D. <go...@us...> - 2003-10-05 18:01:17
|
Log Message: ----------- Added DamageBonus to WorldObject ID information Modified Files: -------------- /cvsroot/decaldev/source/Inject: Panel.cpp View.cpp View.h Revision Data ------------- Index: Panel.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Panel.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- Panel.cpp 2 Oct 2003 11:49:59 -0000 1.16 +++ Panel.cpp 5 Oct 2003 18:00:41 -0000 1.17 @@ -240,10 +240,15 @@ m_pcView = (cView*)pView; + VARIANT_BOOL isTransparent=VARIANT_FALSE ; + if (m_pcView) m_pcView->get_Transparent(&isTransparent) ; + put_Transparent(isTransparent) ; + if( m_pVP->alpha == -1 ) m_pSite->put_Alpha( m_Alpha ); else m_pSite->put_Alpha( m_pVP->alpha ); + #ifdef _DEBUG // Make sure the child exists Index: View.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/View.cpp,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- View.cpp 2 Oct 2003 18:31:54 -0000 1.28 +++ View.cpp 5 Oct 2003 18:00:41 -0000 1.29 @@ -444,7 +444,11 @@ if( pVal == NULL ) return E_POINTER; - *pVal = m_VP.alpha; + if (m_bTransparent) { + *pVal = m_lOldAlpha ; + } else { + *pVal = m_VP.alpha; + } return S_OK; } @@ -493,17 +497,16 @@ return S_OK; m_bTransparent = false; - m_VP.alpha = m_lOldTrans; + m_VP.alpha = m_lOldAlpha; m_pPanel->put_Transparent( VARIANT_FALSE ); } - else { if( m_bTransparent ) return S_OK; m_bTransparent = true; - m_lOldTrans = m_VP.alpha; + m_lOldAlpha = m_VP.alpha; m_VP.alpha = 255; m_pPanel->put_Transparent( VARIANT_TRUE ); } Index: View.h =================================================================== RCS file: /cvsroot/decaldev/source/Inject/View.h,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- View.h 28 Sep 2003 19:05:05 -0000 1.13 +++ View.h 5 Oct 2003 18:00:41 -0000 1.14 @@ -22,7 +22,7 @@ cView( ) { m_VP.alpha = -1; - m_lOldTrans = 255; + m_lOldAlpha = 255; } ~cView(); @@ -36,7 +36,7 @@ CComPtr< IPanel > m_pPanel; ViewParams m_VP; - long m_lOldTrans; + long m_lOldAlpha; bool m_bTransparent; // Named controls |
From: BJ H. <par...@us...> - 2003-10-02 18:31:56
|
Log Message: ----------- fix for ID="0" bug? Modified Files: -------------- /cvsroot/decaldev/source/Inject: View.cpp Revision Data ------------- Index: View.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/View.cpp,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- View.cpp 30 Sep 2003 16:44:17 -0000 1.27 +++ View.cpp 2 Oct 2003 18:31:54 -0000 1.28 @@ -260,7 +260,7 @@ vID = pElement->getAttribute( _T( "ID" ) ); // check for lower case, since all other attributes are lower case. And // Legiondale_Superman can't seem to get it right... - if (vID.intVal == 0) { + if (vID.vt == VT_NULL ) { vID = pElement->getAttribute( _T( "id" ) ); } |
From: Jeffrey D. <ha...@us...> - 2003-10-02 11:50:04
|
Log Message: ----------- Decal needs to not have like 3,0000,0000 circular references Modified Files: -------------- /cvsroot/decaldev/source/Inject: Inject.idl Panel.cpp Panel.h RootLayer.cpp Revision Data ------------- Index: Inject.idl =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Inject.idl,v retrieving revision 1.44 retrieving revision 1.45 diff -u -d -r1.44 -r1.45 --- Inject.idl 28 Sep 2003 19:01:28 -0000 1.44 +++ Inject.idl 2 Oct 2003 11:49:58 -0000 1.45 @@ -554,6 +554,7 @@ [helpstring("method LoadViewEx")] HRESULT LoadViewEx(long nViewID, IView *pView, IUnknown *pSchema, long lViewFlags); [propget, helpstring("property Transparent")] HRESULT Transparent([out, retval] VARIANT_BOOL* pVal); [propput, helpstring("property Transparent")] HRESULT Transparent([in] VARIANT_BOOL newVal); + [propput, helpstring("property Params")] HRESULT Params([in] struct ViewParams *newVal); }; [ Index: Panel.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Panel.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- Panel.cpp 28 Sep 2003 19:05:05 -0000 1.15 +++ Panel.cpp 2 Oct 2003 11:49:59 -0000 1.16 @@ -582,3 +582,12 @@ return S_OK; } + +STDMETHODIMP cPanel::put_Params(ViewParams *newVal) +{ + if( newVal == NULL ) + return E_POINTER; + + m_pVP = newVal; + return S_OK; +} Index: Panel.h =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Panel.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- Panel.h 28 Sep 2003 19:05:05 -0000 1.8 +++ Panel.h 2 Oct 2003 11:49:59 -0000 1.9 @@ -82,6 +82,7 @@ STDMETHOD(putref_Sink)(/*[in]*/ IPanelSink* newVal); STDMETHOD(get_Transparent)(/*[out, retval]*/ VARIANT_BOOL *pVal); STDMETHOD(put_Transparent)(/*[in]*/ VARIANT_BOOL newVal); + STDMETHOD(put_Params)(ViewParams *Params); // ILayerRender Methods STDMETHOD(Render)(ICanvas *); Index: RootLayer.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/RootLayer.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- RootLayer.cpp 17 Sep 2003 23:10:06 -0000 1.7 +++ RootLayer.cpp 2 Oct 2003 11:49:59 -0000 1.8 @@ -155,9 +155,13 @@ pPanel->putref_Sink( this ); pView->m_pPanel = pPanel; + pPanel->put_Params( &pView->m_VP ); } else + { pView->m_pPanel = m_pPanel; + m_pPanel->put_Params( &pView->m_VP ); + } CComPtr< IUnknown > pRootControl; |
From: Jeffrey D. <ha...@us...> - 2003-10-01 02:55:16
|
Log Message: ----------- proj updates for rc4 Modified Files: -------------- /cvsroot/decaldev/source/Installer/Res: Install.vbs Revision Data ------------- Index: Install.vbs =================================================================== RCS file: /cvsroot/decaldev/source/Installer/Res/Install.vbs,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- Install.vbs 13 Sep 2003 19:37:00 -0000 1.41 +++ Install.vbs 1 Oct 2003 02:55:15 -0000 1.42 @@ -105,7 +105,7 @@ AllProducts.Add "2.6.0.0 RC1", "{6E766A51-09A9-4571-B55A-EE2E4E74B8BC}" AllProducts.Add "2.6.0.0 RC2", "{4C22590F-22B8-4413-B91D-0403B2F84979}" AllProducts.Add "2.6.0.0 RC3", "{E86FBB39-9061-475A-B575-F8F9AC12DB74}" - +AllProducts.Add "2.6.0.0 RC4", "{16673809-CA94-4E31-9E0B-B2FCA0CBDFAB}" ' These are optional ' The features they provide will be ignored if they are left as empty strings |
From: Jeffrey D. <ha...@us...> - 2003-10-01 02:55:05
|
Log Message: ----------- proj updates for rc4 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.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- DecalInstaller.vdproj 13 Sep 2003 19:36:41 -0000 1.16 +++ DecalInstaller.vdproj 1 Oct 2003 02:55:01 -0000 1.17 @@ -28,11 +28,59 @@ "Entry" { "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8" + "OwnerKey" = "8:_0593B7A6B4D74017A43CC5F9741D078B" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8" + "OwnerKey" = "8:_F7B461AAFB7641F699DAEAF49904A662" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8" + "OwnerKey" = "8:_BD4EC7DFE26A40BA84001249533EC862" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8" + "OwnerKey" = "8:_AC7940677AFA439D9D75C9827A0003A2" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8" "OwnerKey" = "8:_A03B9AE58553491581FA0975DF6E6E88" "MsmSig" = "8:_UNDEFINED" } "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" + } + "Entry" + { + "MsmKey" = "8:_10D01E415273DFB80A6309EC12D187D8" + "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -58,11 +106,29 @@ "Entry" { "MsmKey" = "8:_41F2E99B0C1B72CFD51382D5E140A7E8" + "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_41F2E99B0C1B72CFD51382D5E140A7E8" + "OwnerKey" = "8:_BD4EC7DFE26A40BA84001249533EC862" + "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" @@ -87,12 +153,6 @@ } "Entry" { - "MsmKey" = "8:_5FDFB39E71040234E587E8DA7C8CC637" - "OwnerKey" = "8:_A03B9AE58553491581FA0975DF6E6E88" - "MsmSig" = "8:_UNDEFINED" - } - "Entry" - { "MsmKey" = "8:_673044C5656142EBAA86D07A36EFFF5A" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -111,8 +171,8 @@ } "Entry" { - "MsmKey" = "8:_9D1DE62ED9EB0FB3F2ECD76141BE40C3" - "OwnerKey" = "8:_A03B9AE58553491581FA0975DF6E6E88" + "MsmKey" = "8:_942AAA28BB647CF0EF1C6137B296D4FE" + "OwnerKey" = "8:_BD4EC7DFE26A40BA84001249533EC862" "MsmSig" = "8:_UNDEFINED" } "Entry" @@ -123,12 +183,54 @@ } "Entry" { + "MsmKey" = "8:_A363B66FCAE3DB5C7CECA058D6C5B2B4" + "OwnerKey" = "8:_287894F290604710B0E99CD646021261" + "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" } "Entry" { + "MsmKey" = "8:_B25FABFF31AE4053872A4440D7116DD1" + "OwnerKey" = "8:_10B736524B444A95B8CC8D36B521F980" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_B25FABFF31AE4053872A4440D7116DD1" + "OwnerKey" = "8:_A03B9AE58553491581FA0975DF6E6E88" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_B25FABFF31AE4053872A4440D7116DD1" + "OwnerKey" = "8:_11AE7CD5CB2A43E395B33FDD50522940" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_B65B1E8E7A2B4AB4B7D61E7F4FB061D0" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -141,6 +243,12 @@ } "Entry" { + "MsmKey" = "8:_BC87E37B7AD8F9835E2A3AC4B4EDBC61" + "OwnerKey" = "8:_BD4EC7DFE26A40BA84001249533EC862" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { "MsmKey" = "8:_BD4EC7DFE26A40BA84001249533EC862" "OwnerKey" = "8:_UNDEFINED" "MsmSig" = "8:_UNDEFINED" @@ -169,6 +277,18 @@ "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" + } } "Configurations" { @@ -387,10 +507,10 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } - "{A582A373-4685-4296-BEFE-614B80A702C3}:_5FDFB39E71040234E587E8DA7C8CC637" + "{A582A373-4685-4296-BEFE-614B80A702C3}:_7871BAAF26D34E148CE9063C20620A7E" { - "SourcePath" = "8:MSVCP71D.dll" - "TargetName" = "8:MSVCP71D.dll" + "SourcePath" = "8:..\\Release\\Switchbar Template.bmp" + "TargetName" = "8:Switchbar Template.bmp" "Tag" = "8:" "Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F" "Condition" = "8:" @@ -404,13 +524,33 @@ "PackageAs" = "3:1" "Register" = "3:1" "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + } + "{A582A373-4685-4296-BEFE-614B80A702C3}:_942AAA28BB647CF0EF1C6137B296D4FE" + { + "SourcePath" = "8:DDRAW.dll" + "TargetName" = "8:DDRAW.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}:_7871BAAF26D34E148CE9063C20620A7E" + "{A582A373-4685-4296-BEFE-614B80A702C3}:_A363B66FCAE3DB5C7CECA058D6C5B2B4" { - "SourcePath" = "8:..\\Release\\Switchbar Template.bmp" - "TargetName" = "8:Switchbar Template.bmp" + "SourcePath" = "8:comdlg32.dll" + "TargetName" = "8:comdlg32.dll" "Tag" = "8:" "Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F" "Condition" = "8:" @@ -423,14 +563,14 @@ "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}:_9D1DE62ED9EB0FB3F2ECD76141BE40C3" + "{A582A373-4685-4296-BEFE-614B80A702C3}:_AB8B779E801448568C9C2869BFA349A8" { - "SourcePath" = "8:MSVCR71D.dll" - "TargetName" = "8:MSVCR71D.dll" + "SourcePath" = "8:ForceLibrary.dll" + "TargetName" = "8:ForceLibrary.dll" "Tag" = "8:" "Folder" = "8:_8166ECC1DA234550B1E7EF74BD46A69F" "Condition" = "8:" @@ -443,7 +583,7 @@ "SharedLegacy" = "11:FALSE" "PackageAs" = "3:1" "Register" = "3:1" - "Exclude" = "11:FALSE" + "Exclude" = "11:TRUE" "IsDependency" = "11:TRUE" "IsolateTo" = "8:" } @@ -527,6 +667,26 @@ "IsDependency" = "11:FALSE" "IsolateTo" = "8:" } + "{A582A373-4685-4296-BEFE-614B80A702C3}:_FD2F9BAB00E2CB44E03A93E604085DE2" + { + "SourcePath" = "8:urlmon.dll" + "TargetName" = "8:urlmon.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:4" + "Exclude" = "11:TRUE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } } "FileType" { @@ -604,13 +764,13 @@ { "Name" = "8:Microsoft Visual Studio" "ProductName" = "8:Decal" - "ProductCode" = "8:{E86FBB39-9061-475A-B575-F8F9AC12DB74}" - "PackageCode" = "8:{FDDF2B93-4BCD-4991-A112-A9B755DB03EA}" + "ProductCode" = "8:{16673809-CA94-4E31-9E0B-B2FCA0CBDFAB}" + "PackageCode" = "8:{0D516630-0D19-46E8-B0EC-42CE2D969F2A}" "UpgradeCode" = "8:{3025AB1B-80B9-46B7-9CE9-9887ADA2914F}" "RestartWWWService" = "11:FALSE" "RemovePreviousVersions" = "11:TRUE" "DetectNewerInstalledVersion" = "11:TRUE" - "ProductVersion" = "8:2.6.02" + "ProductVersion" = "8:2.6.03" "Manufacturer" = "8:Decal Developers" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:http://forums.acdev.org/" @@ -1128,6 +1288,20 @@ } "MergeModule" { + "{35A69C6E-5BA4-440D-803D-762B59A45393}:_B25FABFF31AE4053872A4440D7116DD1" + { + "UseDynamicProperties" = "11:TRUE" + "IsDependency" = "11:TRUE" + "SourcePath" = "8:vc_user_atl71_rtl_x86_---.msm" + "Properties" + { + } + "LanguageId" = "3:0" + "Exclude" = "11:FALSE" + "Folder" = "8:" + "Feature" = "8:" + "IsolateTo" = "8:" + } } "ProjectOutput" { |
From: BJ H. <par...@us...> - 2003-09-30 23:16:30
|
Log Message: ----------- got confused on what true and false meant. all fixed, tested & working Modified Files: -------------- /cvsroot/decaldev/source/DecalControls: CheckColumn.cpp Revision Data ------------- Index: CheckColumn.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalControls/CheckColumn.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- CheckColumn.cpp 30 Sep 2003 20:59:33 -0000 1.10 +++ CheckColumn.cpp 30 Sep 2003 23:16:29 -0000 1.11 @@ -36,7 +36,7 @@ bCheck = vCheck.vt == VT_NULL ? false : static_cast<bool>(vCheck); m_pList->get_Data( ptCell->x, ptCell->y, 1, &vHidden ); - bHidden = vHidden.vt == VT_NULL ? false : !static_cast<bool>(vHidden); + bHidden = vHidden.vt == VT_NULL ? false : static_cast<bool>(vHidden); // Converted nicely now ... // Find our checked and unchecked images @@ -91,7 +91,7 @@ bCheck = vCheck.vt == VT_NULL ? false : static_cast<bool>(vCheck); m_pList->get_Data( ptCell->x, ptCell->y, 1, &vHidden ); - bHidden = vHidden.vt == VT_NULL ? false : !static_cast<bool>(vHidden); + bHidden = vHidden.vt == VT_NULL ? false : static_cast<bool>(vHidden); if( !bHidden ) m_pList->put_Data( ptCell->x, ptCell->y, 0, &_variant_t( !bCheck ) ); |
From: BJ H. <par...@us...> - 2003-09-30 20:59:35
|
Log Message: ----------- took out the try..catches and just checked for VT_NULL. i need to test this when i get home to make sure it's not broken. Modified Files: -------------- /cvsroot/decaldev/source/DecalControls: CheckColumn.cpp Revision Data ------------- Index: CheckColumn.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalControls/CheckColumn.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- CheckColumn.cpp 30 Sep 2003 19:54:18 -0000 1.9 +++ CheckColumn.cpp 30 Sep 2003 20:59:33 -0000 1.10 @@ -29,30 +29,14 @@ STDMETHODIMP cCheckColumn::Render(ICanvas *pCanvas, LPPOINT ptCell, long nColor) { - _variant_t vCheck,vDisplay; - bool bDisplay,bCheck; + _variant_t vCheck, vHidden; + bool bHidden, bCheck; m_pList->get_Data( ptCell->x, ptCell->y, 0, &vCheck ); - try - { - bCheck = static_cast<bool>(vCheck); - } - catch( ... ) - { - // Default to false if no value is set - bCheck = false; - } + bCheck = vCheck.vt == VT_NULL ? false : static_cast<bool>(vCheck); - m_pList->get_Data( ptCell->x, ptCell->y, 1, &vDisplay ); - try - { - bDisplay = !static_cast<bool>(vDisplay);// 1 makes it invisible - } - catch( ... ) - { - // Default to true if no value is set - bDisplay = true; - } + m_pList->get_Data( ptCell->x, ptCell->y, 1, &vHidden ); + bHidden = vHidden.vt == VT_NULL ? false : !static_cast<bool>(vHidden); // Converted nicely now ... // Find our checked and unchecked images @@ -62,7 +46,7 @@ m_pSite->GetIconCache( &sz, &pIcons ); POINT pt = { 3, 3 }; - if( bDisplay ) + if( !bHidden ) pIcons->DrawIcon( &pt, bCheck ? 0x0600128B : 0x0600128D, 0, pCanvas ); return S_OK; @@ -99,35 +83,17 @@ STDMETHODIMP cCheckColumn::Activate(LPPOINT ptCell) { - _variant_t vData; - - bool bDisplay,bCheck; - - m_pList->get_Data( ptCell->x, ptCell->y, 0, &vData ); - try - { - bCheck = static_cast<bool>(vData); - } - catch( ... ) - { - // Default to false is no value is set - bCheck = false; - } + _variant_t vCheck, vHidden; + bool bHidden, bCheck; - m_pList->get_Data( ptCell->x, ptCell->y, 1, &vData ); - try - { - bDisplay = !static_cast<bool>(vData);// 1 makes it invisible - } - catch( ... ) - { - // Default to false is no value is set - bDisplay = true; - } + m_pList->get_Data( ptCell->x, ptCell->y, 0, &vCheck ); + bCheck = vCheck.vt == VT_NULL ? false : static_cast<bool>(vCheck); + m_pList->get_Data( ptCell->x, ptCell->y, 1, &vHidden ); + bHidden = vHidden.vt == VT_NULL ? false : !static_cast<bool>(vHidden); - if( bDisplay ) + if( !bHidden ) m_pList->put_Data( ptCell->x, ptCell->y, 0, &_variant_t( !bCheck ) ); return S_OK; |
From: BJ H. <par...@us...> - 2003-09-30 19:54:19
|
Log Message: ----------- this may fix the display errors with nb2, ein, etc. Modified Files: -------------- /cvsroot/decaldev/source/DecalControls: CheckColumn.cpp Revision Data ------------- Index: CheckColumn.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalControls/CheckColumn.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- CheckColumn.cpp 30 Sep 2003 19:04:41 -0000 1.8 +++ CheckColumn.cpp 30 Sep 2003 19:54:18 -0000 1.9 @@ -46,7 +46,7 @@ m_pList->get_Data( ptCell->x, ptCell->y, 1, &vDisplay ); try { - bDisplay = !static_cast<bool>(vDisplay); + bDisplay = !static_cast<bool>(vDisplay);// 1 makes it invisible } catch( ... ) { @@ -70,7 +70,7 @@ STDMETHODIMP cCheckColumn::get_DataColumns(long *pVal) { - *pVal = 1; + *pVal = 2; return S_OK; } @@ -118,7 +118,7 @@ m_pList->get_Data( ptCell->x, ptCell->y, 1, &vData ); try { - bDisplay = !static_cast<bool>(vData); + bDisplay = !static_cast<bool>(vData);// 1 makes it invisible } catch( ... ) { |
From: BJ H. <par...@us...> - 2003-09-30 19:05:14
|
Log Message: ----------- swapped it around so that NULL/0 is visible while anthing else is invisible. Modified Files: -------------- /cvsroot/decaldev/source/DecalControls: CheckColumn.cpp Revision Data ------------- Index: CheckColumn.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalControls/CheckColumn.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- CheckColumn.cpp 25 Sep 2003 19:57:29 -0000 1.7 +++ CheckColumn.cpp 30 Sep 2003 19:04:41 -0000 1.8 @@ -46,7 +46,7 @@ m_pList->get_Data( ptCell->x, ptCell->y, 1, &vDisplay ); try { - bDisplay = static_cast<bool>(vDisplay); + bDisplay = !static_cast<bool>(vDisplay); } catch( ... ) { @@ -118,7 +118,7 @@ m_pList->get_Data( ptCell->x, ptCell->y, 1, &vData ); try { - bDisplay = static_cast<bool>(vData); + bDisplay = !static_cast<bool>(vData); } catch( ... ) { |
From: BJ H. <par...@us...> - 2003-09-30 16:44:19
|
Log Message: ----------- Fix for view assuming icon is an ac resource before checking for an icon library. Should allow plugins to set custom decal bar icons in the xml now by specifiying a resource id and their dll. Modified Files: -------------- /cvsroot/decaldev/source/Inject: View.cpp Revision Data ------------- Index: View.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/View.cpp,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- View.cpp 28 Sep 2003 19:12:30 -0000 1.26 +++ View.cpp 30 Sep 2003 16:44:17 -0000 1.27 @@ -106,14 +106,17 @@ _ASSERTE( vTitle.vt == VT_BSTR ); // Fill this into a view param -// GKusnick: Handle no-icon case without asserting. -// _ASSERTE( vIcon.vt != VT_NULL ); - m_VP.icon = ( vIcon.vt != VT_NULL ) ? static_cast< long >( vIcon ) + 0x06000000 : 0; - if( vIconModule.vt == VT_BSTR ) cManager::_p->LoadResourceModule( vIconModule.bstrVal, &m_VP.iconLibrary ); else m_VP.iconLibrary = 0; + +// GKusnick: Handle no-icon case without asserting. +// _ASSERTE( vIcon.vt != VT_NULL ); + m_VP.icon = ( vIcon.vt != VT_NULL ) ? static_cast< long >( vIcon ) : 0; + // Para: shouldn't add 0x06000000 if there's an iconlibrary + if (m_VP.iconLibrary == 0) + m_VP.icon += 0x06000000; if(vLeft.vt == VT_NULL) m_VP.left = 0; |
From: Todd D. P. <ci...@us...> - 2003-09-29 22:27:54
|
Log Message: ----------- fixes error with m_nBackground (thanks GK) Modified Files: -------------- /cvsroot/decaldev/source/Inject: Button.cpp Revision Data ------------- Index: Button.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Button.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Button.cpp 24 Sep 2003 03:51:26 -0000 1.4 +++ Button.cpp 29 Sep 2003 22:27:52 -0000 1.5 @@ -8,6 +8,7 @@ cButton::cButton() : m_nModule( 0 ), +m_nBackground( 0 ), m_nPressed( 0 ), m_nReleased( 0 ), m_bPressed( VARIANT_FALSE ), |
From: Jeffrey D. <ha...@us...> - 2003-09-28 20:06:34
|
Log Message: ----------- Making IView->PutTransparent work Modified Files: -------------- /cvsroot/decaldev/source/Inject: Inject.idl Revision Data ------------- Index: Inject.idl =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Inject.idl,v retrieving revision 1.43 retrieving revision 1.44 diff -u -d -r1.43 -r1.44 --- Inject.idl 26 Sep 2003 08:25:25 -0000 1.43 +++ Inject.idl 28 Sep 2003 19:01:28 -0000 1.44 @@ -552,6 +552,8 @@ [helpstring("method Deactivate")] HRESULT Deactivate(); [propputref, helpstring("property Sink")] HRESULT Sink([in] IPanelSink* newVal); [helpstring("method LoadViewEx")] HRESULT LoadViewEx(long nViewID, IView *pView, IUnknown *pSchema, long lViewFlags); + [propget, helpstring("property Transparent")] HRESULT Transparent([out, retval] VARIANT_BOOL* pVal); + [propput, helpstring("property Transparent")] HRESULT Transparent([in] VARIANT_BOOL newVal); }; [ |
From: Jeffrey D. <ha...@us...> - 2003-09-28 19:18:07
|
Log Message: ----------- Oops Modified Files: -------------- /cvsroot/decaldev/source/DecalFilters: IdentifyQueue.cpp Revision Data ------------- Index: IdentifyQueue.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalFilters/IdentifyQueue.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- IdentifyQueue.cpp 22 Jun 2003 08:44:04 -0000 1.16 +++ IdentifyQueue.cpp 28 Sep 2003 19:17:53 -0000 1.17 @@ -94,6 +94,9 @@ STDMETHODIMP CIdentifyQueue::AddToQueue( long lObjectID ) { + if( lObjectID == 0 ) + return S_OK; + if( !m_Queue.empty() ) { for( IDContainer::iterator pDeque = m_Queue.begin(); pDeque != m_Queue.end(); ++pDeque ) @@ -184,15 +187,7 @@ { if( m_Queue.empty() ) { - if( m_lLastManualAttempt != 0 ) - { - m_pfRequestFunc( m_lLastManualAttempt ); - m_bWaiting = true; - } - - else - m_pfRequestFunc( 0 ); - + m_pfRequestFunc( 0 ); return; } |
From: Jeffrey D. <ha...@us...> - 2003-09-28 19:12:44
|
Log Message: ----------- Making IView->PutTransparent work Modified Files: -------------- /cvsroot/decaldev/source/Inject: View.cpp Revision Data ------------- Index: View.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/View.cpp,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- View.cpp 28 Sep 2003 02:06:58 -0000 1.25 +++ View.cpp 28 Sep 2003 19:12:30 -0000 1.26 @@ -442,7 +442,6 @@ return E_POINTER; *pVal = m_VP.alpha; - return S_OK; } @@ -487,21 +486,24 @@ { if( newVal == VARIANT_FALSE ) { + if( !m_bTransparent ) + return S_OK; + m_bTransparent = false; - m_VP.alpha = -1; + m_VP.alpha = m_lOldTrans; + m_pPanel->put_Transparent( VARIANT_FALSE ); } else { + if( m_bTransparent ) + return S_OK; + m_bTransparent = true; + m_lOldTrans = m_VP.alpha; m_VP.alpha = 255; + m_pPanel->put_Transparent( VARIANT_TRUE ); } - - long nActiveView; - m_pPanel->get_ActiveView( &nActiveView ); - - if( nActiveView == m_nViewID ) - m_pPanel->ActivateView(m_nViewID, &m_VP, (long*)this); return S_OK; } |
From: Jeffrey D. <ha...@us...> - 2003-09-28 19:05:48
|
Log Message: ----------- Making IView->PutTransparent work Modified Files: -------------- /cvsroot/decaldev/source/Inject: Panel.cpp Panel.h View.h Revision Data ------------- Index: Panel.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Panel.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- Panel.cpp 17 Sep 2003 23:10:06 -0000 1.14 +++ Panel.cpp 28 Sep 2003 19:05:05 -0000 1.15 @@ -557,4 +557,28 @@ } } return S_OK; -} \ No newline at end of file +} + +STDMETHODIMP cPanel::get_Transparent(VARIANT_BOOL *pVal) +{ + *pVal = ( m_bTransparent ? VARIANT_TRUE : VARIANT_FALSE ); + return S_OK; +} + +STDMETHODIMP cPanel::put_Transparent(VARIANT_BOOL newVal) +{ + if( newVal == VARIANT_FALSE ) + m_bTransparent = false; + else + m_bTransparent = true; + + if( m_pVP->alpha == -1 ) + m_pSite->put_Alpha( m_Alpha ); + else + m_pSite->put_Alpha( m_pVP->alpha ); + + m_pSite->Invalidate(); + m_pSite->Reformat(); + + return S_OK; +} Index: Panel.h =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Panel.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Panel.h 17 Sep 2003 23:10:06 -0000 1.7 +++ Panel.h 28 Sep 2003 19:05:05 -0000 1.8 @@ -80,6 +80,8 @@ STDMETHOD(ActivateView)(long nViewID, ViewParams *pParams, long *pVal); STDMETHOD(Deactivate)(); STDMETHOD(putref_Sink)(/*[in]*/ IPanelSink* newVal); + STDMETHOD(get_Transparent)(/*[out, retval]*/ VARIANT_BOOL *pVal); + STDMETHOD(put_Transparent)(/*[in]*/ VARIANT_BOOL newVal); // ILayerRender Methods STDMETHOD(Render)(ICanvas *); Index: View.h =================================================================== RCS file: /cvsroot/decaldev/source/Inject/View.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- View.h 25 Sep 2003 19:50:11 -0000 1.12 +++ View.h 28 Sep 2003 19:05:05 -0000 1.13 @@ -22,6 +22,7 @@ cView( ) { m_VP.alpha = -1; + m_lOldTrans = 255; } ~cView(); @@ -35,6 +36,7 @@ CComPtr< IPanel > m_pPanel; ViewParams m_VP; + long m_lOldTrans; bool m_bTransparent; // Named controls |
From: Todd D. P. <ci...@us...> - 2003-09-28 05:53:17
|
Log Message: ----------- cleaned up some warnings Modified Files: -------------- /cvsroot/decaldev/source/Inject: Inject.cpp View.cpp Revision Data ------------- Index: Inject.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Inject.cpp,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- Inject.cpp 27 Sep 2003 05:29:10 -0000 1.30 +++ Inject.cpp 28 Sep 2003 02:06:58 -0000 1.31 @@ -163,7 +163,7 @@ pPatchesDoc.CreateInstance( __uuidof( MSXML::DOMDocument ) ); pPatchesDoc->async = false; - bool bSuccess = pPatchesDoc->load( szPath ); + bool bSuccess = (pPatchesDoc->load( szPath )) ? true : false; if( bSuccess ) { if( CheckClientVersion( pPatchesDoc ) ) Index: View.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/View.cpp,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- View.cpp 25 Sep 2003 19:50:11 -0000 1.24 +++ View.cpp 28 Sep 2003 02:06:58 -0000 1.25 @@ -442,6 +442,8 @@ return E_POINTER; *pVal = m_VP.alpha; + + return S_OK; } STDMETHODIMP cView::put_Alpha(long Alpha) |
From: Jeffrey D. <ha...@us...> - 2003-09-27 07:20:22
|
Log Message: ----------- outlines and stuff Modified Files: -------------- /cvsroot/decaldev/source/DecalControls: Checkbox.cpp Checkbox.h Edit.cpp Edit.h Revision Data ------------- Index: Checkbox.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalControls/Checkbox.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Checkbox.cpp 26 Sep 2003 22:57:54 -0000 1.4 +++ Checkbox.cpp 27 Sep 2003 06:49:03 -0000 1.5 @@ -130,6 +130,7 @@ vTextColor = pElement->getAttribute( _T( "textcolor" ) ), vRightToLeft = pElement->getAttribute( _T( "righttoleft" ) ), vChecked = pElement->getAttribute( _T( "checked" ) ), + vOutline = pElement->getAttribute( _T( "outlinecolor" ) ), vAntialias = pElement->getAttribute( _T( "aa" ) ); // Text must exist @@ -175,6 +176,22 @@ } } + m_nOutlineColor = 0; + m_bOutline = false; + if( vOutline.vt != VT_NULL ) + { + try + { + m_bOutline = true; + m_nOutlineColor = static_cast< long >( vOutline ); + } + catch( ... ) + { + // Type conversion error + _ASSERTE( FALSE ); + } + } + m_bAA = true; if( vAntialias.vt != VT_NULL ) { @@ -251,7 +268,16 @@ pPlugin->GetIconCache( &szIcon, &pIcon ); pIcon->DrawIcon( &m_ptCheck, ( bChecked ) ? 0x0600128B : 0x0600128D, 0, pCanvas ); - m_pFont->DrawTextEx( &m_ptText, m_strText, m_nTextColor, 0, m_bAA ? eAA : 0, pCanvas ); + + long lFlags = 0; + + if( m_bAA ) + lFlags |= eAA; + + if( m_bOutline ) + lFlags |= eOutlined; + + m_pFont->DrawTextEx( &m_ptText, m_strText, m_nTextColor, m_nOutlineColor, lFlags, pCanvas ); return S_OK; } Index: Checkbox.h =================================================================== RCS file: /cvsroot/decaldev/source/DecalControls/Checkbox.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Checkbox.h 26 Sep 2003 22:57:54 -0000 1.3 +++ Checkbox.h 27 Sep 2003 06:49:03 -0000 1.4 @@ -31,8 +31,8 @@ VARIANT_BOOL m_bChecked, m_bRightToLeft; - long m_nTextColor; - bool m_bAA; + long m_nTextColor, m_nOutlineColor; + bool m_bAA, m_bOutline; POINT m_ptText, m_ptCheck; Index: Edit.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalControls/Edit.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Edit.cpp 26 Sep 2003 22:57:54 -0000 1.6 +++ Edit.cpp 27 Sep 2003 06:49:03 -0000 1.7 @@ -229,13 +229,21 @@ // Nothing to draw huzzah! return S_OK; + long lFlags = 0; + + if( m_bAA ) + lFlags |= eAA; + + if( m_bOutline ) + lFlags |= eOutlined; + // Draw the text POINT ptText = { -m_nOffset, 0 }; if( m_strText.length() > 0 ) if (m_bPassword) { - m_pFont->DrawTextEx( &ptText, _bstr_t( m_strPass.c_str() ), m_nTextColor, 0, m_bAA ? eAA : 0, pCanvas ); + m_pFont->DrawTextEx( &ptText, _bstr_t( m_strPass.c_str() ), m_nTextColor, m_nOutlineColor, lFlags, pCanvas ); } else { - m_pFont->DrawTextEx( &ptText, _bstr_t( m_strText.c_str() ), m_nTextColor, 0, m_bAA ? eAA : 0, pCanvas ); + m_pFont->DrawTextEx( &ptText, _bstr_t( m_strText.c_str() ), m_nTextColor, m_nOutlineColor, lFlags, pCanvas ); } if( m_bCapture && m_bDrawCaret ) @@ -758,6 +766,7 @@ vMarginX = pElement->getAttribute( _T( "marginx" ) ), vMarginY = pElement->getAttribute( _T( "marginy" ) ), vPassword = pElement->getAttribute( _T( "password" ) ), + vOutline = pElement->getAttribute( _T( "outlinecolor" ) ), vAntialias = pElement->getAttribute( _T( "aa" ) ); if( vText.vt != VT_NULL ) @@ -829,6 +838,21 @@ m_strPass.append("*"); } + m_nOutlineColor = 0; + m_bOutline = false; + if( vOutline.vt != VT_NULL ) + { + try + { + m_bOutline = true; + m_nOutlineColor = static_cast< long >( vOutline ); + } + catch( ... ) + { + // Type conversion error + _ASSERTE( FALSE ); + } + } m_bAA = true; if( vAntialias.vt != VT_NULL ) Index: Edit.h =================================================================== RCS file: /cvsroot/decaldev/source/DecalControls/Edit.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Edit.h 26 Sep 2003 22:57:54 -0000 1.6 +++ Edit.h 27 Sep 2003 06:49:03 -0000 1.7 @@ -36,12 +36,14 @@ bool m_bDrawCaret; bool m_bPassword; bool m_bSelecting; + bool m_bOutline; bool m_bAA; long m_nCaretChar, m_nCaret, m_nOffset, m_nCaretHeight, m_nSelStart, m_nSelStartChar, - m_nTextColor; + m_nTextColor, m_nOutlineColor; + std::string m_strText; |
From: Jeffrey D. <ha...@us...> - 2003-09-27 06:22:51
|
Log Message: ----------- I h8 being a perfectionist sometimes Modified Files: -------------- /cvsroot/decaldev/source/DenAgent: DenAgent.rc Revision Data ------------- Index: DenAgent.rc =================================================================== RCS file: /cvsroot/decaldev/source/DenAgent/DenAgent.rc,v retrieving revision 1.76 retrieving revision 1.77 diff -u -d -r1.76 -r1.77 --- DenAgent.rc 27 Sep 2003 05:49:07 -0000 1.76 +++ DenAgent.rc 27 Sep 2003 06:22:39 -0000 1.77 @@ -178,13 +178,13 @@ CONTROL "Use Old Injection Method",IDC_OLDINJECT,"Button", BS_AUTOCHECKBOX | WS_TABSTOP,144,46,114,10 CONTROL "Dual Log",IDC_DUALLOG,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,21,130,44,15 + WS_TABSTOP,21,131,44,11 CONTROL "Windowed Mode",IDC_WINDOWED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,21,143,71,11 GROUPBOX "Client Patches",IDC_STATIC,14,122,244,35 PUSHBUTTON "?",IDC_PATCHHELP,241,135,10,15 CONTROL "No Movies",IDC_NOMOVIES,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,101,130,67,11 + WS_TABSTOP,101,131,67,11 CONTROL "No Logos",IDC_NOLOGOS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,101,143,67,11 END |
From: Jeffrey D. <ha...@us...> - 2003-09-27 06:10:22
|
Log Message: ----------- NoMovies hook Modified Files: -------------- /cvsroot/decaldev/source/Inject: Inject.cpp Revision Data ------------- Index: Inject.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Inject.cpp,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- Inject.cpp 26 Sep 2003 22:07:28 -0000 1.29 +++ Inject.cpp 27 Sep 2003 05:29:10 -0000 1.30 @@ -47,8 +47,12 @@ // Functions for hooking from kernel32.dll HANDLE WINAPI CreateFileF( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ); +// Function for dual logging HANDLE WINAPI Replacement_CreateSemaphoreA( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, LPCTSTR lpName ); +// Function for no movies +HFILE WINAPI Replacement_OpenFile( LPCSTR lpFileName, LPOFSTRUCT lpReOpenBuff, UINT uStyle ); + enum eAddressing { eByName, @@ -76,10 +80,16 @@ static bool bDualLog = false; static bool bWindowed = false; static bool bNoSplash = false; +static bool bNoMovies = false; + static cHookDescriptor _hooksDualLog[] = { { eByName, _T( "kernel32.dll" ), _T( "CreateSemaphoreA" ), 102, reinterpret_cast< DWORD >( Replacement_CreateSemaphoreA ), 0 }, }; +static cHookDescriptor _hooksNoMovies[] = { + { eByName, _T( "kernel32.dll" ), _T( "OpenFile" ), 630, reinterpret_cast< DWORD >( Replacement_OpenFile ), 0 }, +}; + bool CheckClientVersion( MSXML::IXMLDOMDocument *pDoc ); bool PatchWindowMode( MSXML::IXMLDOMDocument *pDoc ); bool PatchNoSplash( MSXML::IXMLDOMDocument *pDoc ); @@ -110,10 +120,10 @@ hookFunctions( _hooks, 2 ); bRegisteredInAC = true; - // Check if dual logging is enabled RegKey key; if( key.Open( HKEY_LOCAL_MACHINE, "SOFTWARE\\Decal" ) == ERROR_SUCCESS ) { + // Check if dual logging is enabled DWORD dwReg = 0; if( key.QueryDWORDValue( "AllowDualLog", dwReg ) == ERROR_SUCCESS ) { @@ -123,6 +133,18 @@ hookFunctions( _hooksDualLog, 1 ); } } + + // Check if movies are disabled + dwReg = 0; + if( key.QueryDWORDValue( "NoMovies", dwReg ) == ERROR_SUCCESS ) + { + if( dwReg ) + { + bNoMovies = true; + hookFunctions( _hooksNoMovies, 1 ); + } + } + } key.Close(); @@ -364,6 +386,15 @@ else return CreateSemaphore( lpSemaphoreAttributes, lInitialCount, lMaximumCount, lpName ); +} + +HFILE WINAPI Replacement_OpenFile( LPCSTR lpFileName, LPOFSTRUCT lpReOpenBuff, UINT uStyle ) +{ + if( strstr( lpFileName, "\\movies\\" ) != NULL ) + return HFILE_ERROR; + + else + return OpenFile( lpFileName, lpReOpenBuff, uStyle ); } bool CheckClientVersion( MSXML::IXMLDOMDocument *pDoc ) |
From: Jeffrey D. <ha...@us...> - 2003-09-27 05:58:21
|
Log Message: ----------- Boo Modified Files: -------------- /cvsroot/decaldev/source/DecalControls: TextColumn.cpp Revision Data ------------- Index: TextColumn.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalControls/TextColumn.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- TextColumn.cpp 13 Sep 2003 23:59:01 -0000 1.7 +++ TextColumn.cpp 27 Sep 2003 05:58:09 -0000 1.8 @@ -79,7 +79,7 @@ break; } - pFont->DrawText( &pt, vText.bstrVal, nColor, pCanvas ); + pFont->DrawTextEx( &pt, vText.bstrVal, nColor, 0, eAA, pCanvas ); return S_OK; } |
From: Jeffrey D. <ha...@us...> - 2003-09-27 05:49:19
|
Log Message: ----------- No Movies/No Splash options Modified Files: -------------- /cvsroot/decaldev/source/DenAgent: DenAgent.rc OptionsDlg.cpp resource.h Revision Data ------------- Index: DenAgent.rc =================================================================== RCS file: /cvsroot/decaldev/source/DenAgent/DenAgent.rc,v retrieving revision 1.75 retrieving revision 1.76 diff -u -d -r1.75 -r1.76 --- DenAgent.rc 31 Aug 2003 06:05:46 -0000 1.75 +++ DenAgent.rc 27 Sep 2003 05:49:07 -0000 1.76 @@ -183,6 +183,10 @@ WS_TABSTOP,21,143,71,11 GROUPBOX "Client Patches",IDC_STATIC,14,122,244,35 PUSHBUTTON "?",IDC_PATCHHELP,241,135,10,15 + CONTROL "No Movies",IDC_NOMOVIES,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,101,130,67,11 + CONTROL "No Logos",IDC_NOLOGOS,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,101,143,67,11 END IDD_DOWNLOADER DIALOG 0, 0, 202, 86 Index: OptionsDlg.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DenAgent/OptionsDlg.cpp,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- OptionsDlg.cpp 31 Aug 2003 06:05:46 -0000 1.24 +++ OptionsDlg.cpp 27 Sep 2003 05:49:07 -0000 1.25 @@ -163,7 +163,6 @@ if( dwViewMode == 1 ) ::SendMessage( GetDlgItem( IDC_VIEWMULTI )->m_hWnd, BM_SETCHECK, 1, 0 ); - // haz - add checks for Dual/Windowed Mode if( key.QueryDWORDValue( "AllowWindowed", dwViewMode )== ERROR_SUCCESS ) if( dwViewMode == 1 ) { @@ -176,7 +175,18 @@ ::SendMessage( GetDlgItem( IDC_DUALLOG )->m_hWnd, BM_SETCHECK, 1, 0 ); } - // haz - added old inject option + if( key.QueryDWORDValue( "NoMovies", dwViewMode )== ERROR_SUCCESS ) + if( dwViewMode == 1 ) + { + ::SendMessage( GetDlgItem( IDC_NOMOVIES )->m_hWnd, BM_SETCHECK, 1, 0 ); + } + + if( key.QueryDWORDValue( "NoSplash", dwViewMode )== ERROR_SUCCESS ) + if( dwViewMode == 1 ) + { + ::SendMessage( GetDlgItem( IDC_NOLOGOS )->m_hWnd, BM_SETCHECK, 1, 0 ); + } + if( key.QueryDWORDValue( "OldInjection", dwViewMode )== ERROR_SUCCESS ) if( dwViewMode == 1 ) { @@ -295,14 +305,13 @@ else key.SetDWORDValue("AlphaBlendMode", 0x1L); - // dual/window bool bMessage = false; DWORD dwViewMode = 0; if( ::SendMessage( GetDlgItem( IDC_WINDOWED )->m_hWnd, BM_GETCHECK, 0, 0 ) ) { // enabled, but old inject is on if( ! m_bClientPatchesEnabled ) - MessageBox( "One drawback of the old injection method is that Decal is not loaded before Asheron's Call.\nThis means the dual log and windowed mode fixes will not work.", "Decal Agent", MB_OK ), bMessage = true; + MessageBox( "One drawback of the old injection method is that Decal is not loaded before Asheron's Call.\nThis means any client patches will not work.", "Decal Agent", MB_OK ), bMessage = true; key.SetDWORDValue( "AllowWindowed", 0x1L ); } @@ -315,7 +324,7 @@ // enabled, but old inject is on if( ! m_bClientPatchesEnabled ) if( ! bMessage ) - MessageBox( "One drawback of the old injection method is that Decal is not loaded before Asheron's Call.\nThis means the dual log and windowed mode fixes will not work.", "Decal Agent", MB_OK ), bMessage = true; + MessageBox( "One drawback of the old injection method is that Decal is not loaded before Asheron's Call.\nThis means any client patches will not work.", "Decal Agent", MB_OK ), bMessage = true; key.SetDWORDValue( "AllowDualLog", 0x1L ); } @@ -323,6 +332,33 @@ else key.SetDWORDValue( "AllowDualLog", 0x0L ); + if( ::SendMessage( GetDlgItem( IDC_NOLOGOS )->m_hWnd, BM_GETCHECK, 0, 0 ) ) + { + // enabled, but old inject is on + if( ! m_bClientPatchesEnabled ) + if( ! bMessage ) + MessageBox( "One drawback of the old injection method is that Decal is not loaded before Asheron's Call.\nThis means any client patches will not work.", "Decal Agent", MB_OK ), bMessage = true; + + key.SetDWORDValue( "NoMovies", 0x1L ); + } + + else + key.SetDWORDValue( "NoMovies", 0x0L ); + + if( ::SendMessage( GetDlgItem( IDC_NOLOGOS )->m_hWnd, BM_GETCHECK, 0, 0 ) ) + { + // enabled, but old inject is on + if( ! m_bClientPatchesEnabled ) + if( ! bMessage ) + MessageBox( "One drawback of the old injection method is that Decal is not loaded before Asheron's Call.\nThis means any client patches will not work.", "Decal Agent", MB_OK ), bMessage = true; + + key.SetDWORDValue( "NoSplash", 0x1L ); + } + + else + key.SetDWORDValue( "NoSplash", 0x0L ); + + // cbt hook injection if( ::SendMessage(GetDlgItem(IDC_OLDINJECT)->m_hWnd, BM_GETCHECK, 0, 0) ) { @@ -462,6 +498,8 @@ { ::EnableWindow( GetDlgItem( IDC_WINDOWED )->m_hWnd, FALSE ); ::EnableWindow( GetDlgItem( IDC_DUALLOG )->m_hWnd, FALSE ); + ::EnableWindow( GetDlgItem( IDC_NOMOVIES )->m_hWnd, FALSE ); + ::EnableWindow( GetDlgItem( IDC_NOLOGOS )->m_hWnd, FALSE ); m_bClientPatchesEnabled = false; } @@ -469,6 +507,8 @@ { ::EnableWindow( GetDlgItem( IDC_WINDOWED )->m_hWnd, TRUE ); ::EnableWindow( GetDlgItem( IDC_DUALLOG )->m_hWnd, TRUE ); + ::EnableWindow( GetDlgItem( IDC_NOMOVIES )->m_hWnd, TRUE ); + ::EnableWindow( GetDlgItem( IDC_NOLOGOS )->m_hWnd, TRUE ); m_bClientPatchesEnabled = true; } } Index: resource.h =================================================================== RCS file: /cvsroot/decaldev/source/DenAgent/resource.h,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- resource.h 31 Aug 2003 06:05:46 -0000 1.23 +++ resource.h 27 Sep 2003 05:49:07 -0000 1.24 @@ -84,6 +84,9 @@ #define IDC_WINDOWED 1056 #define IDC_BUTTON2 1057 #define IDC_PATCHHELP 1057 +#define IDC_NOMOVIES 1058 +#define IDC_NOMOVIES2 1059 +#define IDC_NOLOGOS 1059 #define ID_SYSTRAY_CONFIGURE 32771 #define ID_SYSTRAY_EXIT 32772 @@ -93,7 +96,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 152 #define _APS_NEXT_COMMAND_VALUE 32776 -#define _APS_NEXT_CONTROL_VALUE 1058 +#define _APS_NEXT_CONTROL_VALUE 1059 #define _APS_NEXT_SYMED_VALUE 105 #endif #endif |
From: Jeffrey D. <ha...@us...> - 2003-09-26 22:58:06
|
Log Message: ----------- enable antialiased text on all controls, add options for turning off AA on checkbox/edit Modified Files: -------------- /cvsroot/decaldev/source/DecalControls: Checkbox.cpp Checkbox.h Choice.cpp ChoicePopup.cpp Edit.cpp Edit.h Revision Data ------------- Index: Checkbox.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalControls/Checkbox.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Checkbox.cpp 24 Jul 2002 03:56:33 -0000 1.3 +++ Checkbox.cpp 26 Sep 2003 22:57:54 -0000 1.4 @@ -129,7 +129,8 @@ _variant_t vText = pElement->getAttribute( _T( "text" ) ), vTextColor = pElement->getAttribute( _T( "textcolor" ) ), vRightToLeft = pElement->getAttribute( _T( "righttoleft" ) ), - vChecked = pElement->getAttribute( _T( "checked" ) ); + vChecked = pElement->getAttribute( _T( "checked" ) ), + vAntialias = pElement->getAttribute( _T( "aa" ) ); // Text must exist _ASSERTE( vText.vt == VT_BSTR ); @@ -174,7 +175,21 @@ } } - return S_OK; + m_bAA = true; + if( vAntialias.vt != VT_NULL ) + { + try + { + m_bAA = static_cast< bool >( vAntialias ); + } + catch( ... ) + { + // Type conversion error + _ASSERTE( FALSE ); + } + } + + return S_OK; } #define CHECK_SIZE 13 @@ -236,7 +251,7 @@ pPlugin->GetIconCache( &szIcon, &pIcon ); pIcon->DrawIcon( &m_ptCheck, ( bChecked ) ? 0x0600128B : 0x0600128D, 0, pCanvas ); - m_pFont->DrawText( &m_ptText, m_strText, m_nTextColor, pCanvas ); + m_pFont->DrawTextEx( &m_ptText, m_strText, m_nTextColor, 0, m_bAA ? eAA : 0, pCanvas ); return S_OK; } Index: Checkbox.h =================================================================== RCS file: /cvsroot/decaldev/source/DecalControls/Checkbox.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Checkbox.h 29 Sep 2001 06:24:22 -0000 1.2 +++ Checkbox.h 26 Sep 2003 22:57:54 -0000 1.3 @@ -32,6 +32,7 @@ m_bRightToLeft; long m_nTextColor; + bool m_bAA; POINT m_ptText, m_ptCheck; Index: Choice.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalControls/Choice.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Choice.cpp 25 Jul 2003 00:12:42 -0000 1.4 +++ Choice.cpp 26 Sep 2003 22:57:54 -0000 1.5 @@ -131,7 +131,7 @@ { // Draw the selected text static POINT ptText = { 12, 2 }; - m_pFont->DrawText( &ptText, m_options[ m_nSelected ].m_strText, RGB( 0, 0, 0 ), pCanvas ); + m_pFont->DrawTextEx( &ptText, m_options[ m_nSelected ].m_strText, 0, 0, eAA, pCanvas ); } // Draw the up/down icon Index: ChoicePopup.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalControls/ChoicePopup.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- ChoicePopup.cpp 18 Aug 2001 19:34:47 -0000 1.1.1.1 +++ ChoicePopup.cpp 26 Sep 2003 22:57:54 -0000 1.2 @@ -69,7 +69,7 @@ // Draw the text POINT ptText = { 12, nRow * ROW_HEIGHT + 2 }; - m_pChoice->m_pFont->DrawText( &ptText, i->m_strText, RGB( 0, 0, 0 ), pCanvas ); + m_pChoice->m_pFont->DrawTextEx( &ptText, i->m_strText, 0, 0, eAA, pCanvas ); } return S_OK; Index: Edit.cpp =================================================================== RCS file: /cvsroot/decaldev/source/DecalControls/Edit.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Edit.cpp 23 Dec 2002 06:07:39 -0000 1.5 +++ Edit.cpp 26 Sep 2003 22:57:54 -0000 1.6 @@ -233,9 +233,9 @@ POINT ptText = { -m_nOffset, 0 }; if( m_strText.length() > 0 ) if (m_bPassword) { - m_pFont->DrawText( &ptText, _bstr_t( m_strPass.c_str() ), m_nTextColor, pCanvas ); + m_pFont->DrawTextEx( &ptText, _bstr_t( m_strPass.c_str() ), m_nTextColor, 0, m_bAA ? eAA : 0, pCanvas ); } else { - m_pFont->DrawText( &ptText, _bstr_t( m_strText.c_str() ), m_nTextColor, pCanvas ); + m_pFont->DrawTextEx( &ptText, _bstr_t( m_strText.c_str() ), m_nTextColor, 0, m_bAA ? eAA : 0, pCanvas ); } if( m_bCapture && m_bDrawCaret ) @@ -757,7 +757,8 @@ vTextColor = pElement->getAttribute( _T( "textcolor" ) ), vMarginX = pElement->getAttribute( _T( "marginx" ) ), vMarginY = pElement->getAttribute( _T( "marginy" ) ), - vPassword = pElement->getAttribute( _T( "password" ) ); + vPassword = pElement->getAttribute( _T( "password" ) ), + vAntialias = pElement->getAttribute( _T( "aa" ) ); if( vText.vt != VT_NULL ) { @@ -828,6 +829,20 @@ m_strPass.append("*"); } + + m_bAA = true; + if( vAntialias.vt != VT_NULL ) + { + try + { + m_bAA = static_cast< bool >( vAntialias ); + } + catch( ... ) + { + // Type conversion error + _ASSERTE( FALSE ); + } + } return S_OK; } Index: Edit.h =================================================================== RCS file: /cvsroot/decaldev/source/DecalControls/Edit.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Edit.h 23 Dec 2002 06:07:39 -0000 1.5 +++ Edit.h 26 Sep 2003 22:57:54 -0000 1.6 @@ -36,11 +36,13 @@ bool m_bDrawCaret; bool m_bPassword; bool m_bSelecting; + bool m_bAA; long m_nCaretChar, m_nCaret, m_nOffset, m_nCaretHeight, m_nSelStart, m_nSelStartChar, m_nTextColor; + std::string m_strText; std::string m_strPass; |
From: Jeffrey D. <ha...@us...> - 2003-09-26 22:46:26
|
Log Message: ----------- Yay for no splash =) Modified Files: -------------- /cvsroot/decaldev/source/Inject: Inject.cpp Revision Data ------------- Index: Inject.cpp =================================================================== RCS file: /cvsroot/decaldev/source/Inject/Inject.cpp,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- Inject.cpp 8 Sep 2003 23:37:43 -0000 1.28 +++ Inject.cpp 26 Sep 2003 22:07:28 -0000 1.29 @@ -75,12 +75,14 @@ static bool bDualLog = false; static bool bWindowed = false; +static bool bNoSplash = false; static cHookDescriptor _hooksDualLog[] = { { eByName, _T( "kernel32.dll" ), _T( "CreateSemaphoreA" ), 102, reinterpret_cast< DWORD >( Replacement_CreateSemaphoreA ), 0 }, }; bool CheckClientVersion( MSXML::IXMLDOMDocument *pDoc ); bool PatchWindowMode( MSXML::IXMLDOMDocument *pDoc ); +bool PatchNoSplash( MSXML::IXMLDOMDocument *pDoc ); HINSTANCE hAlphaBlendDLL; @@ -156,6 +158,13 @@ } + // Splash hax patches + dwReg = 0; + if( key.QueryDWORDValue( "NoSplash", dwReg ) == ERROR_SUCCESS ) + { + if( dwReg ) + bNoSplash = PatchNoSplash( pPatchesDoc ); + } } @@ -415,11 +424,17 @@ MSXML::IXMLDOMElementPtr pNode; MSXML::IXMLDOMNodeListPtr pNodes = pDoc->selectNodes( _bstr_t( "/patches/patch" ) ); - bool bWindowPattern = false, bWindowReplaceOffset = false, bWindowReplace = false, bWindowMaxOffset = false; - char *szPatchPattern; - unsigned char lReplace; - long lReplaceOffset; - long lMaxOffset; + bool bWindowPattern = false, + bWindowReplaceOffset = false, + bWindowReplace = false, + bWindowMaxOffset = false; + + char *szPatchPattern; + + unsigned char byteReplace; + + long lReplaceOffset, + lMaxOffset; for( pNode = pNodes->nextNode(); pNode.GetInterfacePtr() != NULL; pNode = pNodes->nextNode() ) { @@ -440,7 +455,7 @@ if( stricmp( szName, "WindowedModeReplace" ) == 0 ) { _variant_t vReplace = pNode->getAttribute( _bstr_t( "value" ) ); - lReplace = wcstoul( vReplace.bstrVal, NULL, 16 ); + byteReplace = wcstoul( vReplace.bstrVal, NULL, 16 ); bWindowReplace = true; continue; } @@ -471,19 +486,9 @@ unsigned char *szPatternArray = new unsigned char[ iLen ]; memset( szPatternArray, 0, iLen ); -/* FILE *f = fopen( "C:\\decal\\log.txt", "a+" ); - fprintf( f, "iLen = %d\nszPatchPattern = %s\nszPatternArray = ", iLen, szPatchPattern ); */ - int i; - for( i = 0; i < iLen; ++i ) -// { szPatternArray[ i ] = strtoul( szPatchPattern + (i*3), NULL, 16 ); -// fprintf( f, "%02X ", szPatternArray[ i ] ); -// } - -/* fprintf( f, "\n" ); - fclose( f );*/ bool bAbort = true; @@ -493,7 +498,7 @@ if( *pAddy == szPatternArray[ 0 ] ) { // see if entire pattern matches. - if( strcmp( reinterpret_cast< const char * >( szPatternArray ) + 1, reinterpret_cast< char * >( pAddy ) + 1 ) == 0 ) + if( memcmp( reinterpret_cast< const char * >( szPatternArray ) + 1, reinterpret_cast< char * >( pAddy ) + 1, iLen - 1 ) == 0 ) { // yahoo? ... bAbort = false; @@ -508,7 +513,187 @@ DWORD dwOldProtect, dwNewProtect; VirtualProtect( reinterpret_cast< void * >( pAddy ), 1, PAGE_READWRITE, &dwOldProtect ); - pAddy[ 0 ] = lReplace; + pAddy[ 0 ] = byteReplace; + VirtualProtect( reinterpret_cast< void * >( pAddy ), 1, dwOldProtect, &dwNewProtect ); + + return true; +} + +bool PatchNoSplash( MSXML::IXMLDOMDocument *pDoc ) +{ + if( pDoc == NULL ) + return false; + + USES_CONVERSION; + + MSXML::IXMLDOMElementPtr pNode; + MSXML::IXMLDOMNodeListPtr pNodes = pDoc->selectNodes( _bstr_t( "/patches/patch" ) ); + + bool bNoSplashPattern1 = false, + bNoSplashPattern2 = false, + bNoSplashReplaceOffset1 = false, + bNoSplashReplaceOffset2 = false, + bNoSplashReplace1 = false, + bNoSplashReplace2 = false, + bNoSplashMaxOffset1 = false, + bNoSplashMaxOffset2 = false; + + char *szPatchPattern1, + *szPatchPattern2; + + unsigned char byteReplace1, + byteReplace2; + + long lReplaceOffset1, + lReplaceOffset2, + lMaxOffset1, + lMaxOffset2; + + for( pNode = pNodes->nextNode(); pNode.GetInterfacePtr() != NULL; pNode = pNodes->nextNode() ) + { + if( bNoSplashPattern1 && bNoSplashPattern2 && bNoSplashReplaceOffset1 && bNoSplashReplaceOffset2 && bNoSplashReplace1 && bNoSplashReplace2 && bNoSplashMaxOffset1 && bNoSplashMaxOffset2 ) + break; + + _variant_t vName = pNode->getAttribute( _bstr_t( "name" ) ); + char *szName = OLE2A( vName.bstrVal ); + + if( stricmp( szName, "SplashHax1Pattern" ) == 0 ) + { + _variant_t vPatchPattern = pNode->getAttribute( _bstr_t( "value" ) ); + szPatchPattern1 = OLE2A( vPatchPattern.bstrVal ); + bNoSplashPattern1 = true; + continue; + } + + if( stricmp( szName, "SplashHax2Pattern" ) == 0 ) + { + _variant_t vPatchPattern = pNode->getAttribute( _bstr_t( "value" ) ); + szPatchPattern2 = OLE2A( vPatchPattern.bstrVal ); + bNoSplashPattern2 = true; + continue; + } + + if( stricmp( szName, "SplashHax1Replace" ) == 0 ) + { + _variant_t vReplace = pNode->getAttribute( _bstr_t( "value" ) ); + byteReplace1 = wcstoul( vReplace.bstrVal, NULL, 16 ); + bNoSplashReplace1 = true; + continue; + } + + if( stricmp( szName, "SplashHax2Replace" ) == 0 ) + { + _variant_t vReplace = pNode->getAttribute( _bstr_t( "value" ) ); + byteReplace2 = wcstoul( vReplace.bstrVal, NULL, 16 ); + bNoSplashReplace2 = true; + continue; + } + + if( stricmp( szName, "SplashHax1ReplaceOffset" ) == 0 ) + { + _variant_t vReplaceOffset = pNode->getAttribute( _bstr_t( "value" ) ); + lReplaceOffset1 = wcstoul( vReplaceOffset.bstrVal, NULL, 16 ) - 1; // Arrays are 0 indexed in c++ + bNoSplashReplaceOffset1 = true; + continue; + } + + if( stricmp( szName, "SplashHax2ReplaceOffset" ) == 0 ) + { + _variant_t vReplaceOffset = pNode->getAttribute( _bstr_t( "value" ) ); + lReplaceOffset2 = wcstoul( vReplaceOffset.bstrVal, NULL, 16 ) - 1; // Arrays are 0 indexed in c++ + bNoSplashReplaceOffset2 = true; + continue; + } + + if( stricmp( szName, "SplashHax1MaxOffset" ) == 0 ) + { + _variant_t vMaxOffset = pNode->getAttribute( _bstr_t( "value" ) ); + lMaxOffset1 = wcstoul( vMaxOffset.bstrVal, NULL, 16 ); + bNoSplashMaxOffset1 = true; + continue; + } + + if( stricmp( szName, "SplashHax2MaxOffset" ) == 0 ) + { + _variant_t vMaxOffset = pNode->getAttribute( _bstr_t( "value" ) ); + lMaxOffset2 = wcstoul( vMaxOffset.bstrVal, NULL, 16 ); + bNoSplashMaxOffset2 = true; + continue; + } + } + + if( !(bNoSplashPattern1 && bNoSplashPattern2 && bNoSplashReplaceOffset1 && bNoSplashReplaceOffset2 && bNoSplashReplace1 && bNoSplashReplace2 && bNoSplashMaxOffset1 && bNoSplashMaxOffset2) ) + return false; + + unsigned char *pAddy = reinterpret_cast< unsigned char * >( 0x400000 ); + + int iLen = strlen( szPatchPattern1 + 1 ) / 3 + 1; + unsigned char *szPatternArray1 = new unsigned char[ iLen ]; + memset( szPatternArray1, 0, iLen ); + + int i; + for( i = 0; i < iLen; ++i ) + szPatternArray1[ i ] = strtoul( szPatchPattern1 + (i*3), NULL, 16 ); + + bool bAbort1 = true; + + for( i = 0; i < lMaxOffset1; ++i, ++pAddy ) + { + // peek at current byte + if( *pAddy == szPatternArray1[ 0 ] ) + { + // see if entire pattern matches. + if( memcmp( reinterpret_cast< const char * >( szPatternArray1 ) + 1, reinterpret_cast< char * >( pAddy ) + 1, iLen - 1 ) == 0 ) + { + // yahoo? ... + bAbort1 = false; + pAddy += lReplaceOffset1; + break; + } + } + } + + if( bAbort1 ) + return false; + + DWORD dwOldProtect, dwNewProtect; + VirtualProtect( reinterpret_cast< void * >( pAddy ), 1, PAGE_READWRITE, &dwOldProtect ); + pAddy[ 0 ] = byteReplace1; + VirtualProtect( reinterpret_cast< void * >( pAddy ), 1, dwOldProtect, &dwNewProtect ); + + + pAddy = reinterpret_cast< unsigned char * >( 0x400000 ); + + iLen = strlen( szPatchPattern2 + 1 ) / 3 + 1; + unsigned char *szPatternArray2 = new unsigned char[ iLen ]; + memset( szPatternArray2, 0, iLen ); + + for( i = 0; i < iLen; ++i ) + szPatternArray2[ i ] = strtoul( szPatchPattern2 + (i*3), NULL, 16 ); + + bool bAbort2 = true; + + for( i = 0; i < lMaxOffset2; ++i, ++pAddy ) + { + // peek at current byte + if( *pAddy == szPatternArray2[ 0 ] ) + { + // see if entire pattern matches. + if( memcmp( reinterpret_cast< const char * >( szPatternArray2 ) + 1, reinterpret_cast< char * >( pAddy ) + 1, iLen - 1 ) == 0 ) + { + // yahoo? ... + bAbort2 = false; + pAddy += lReplaceOffset2; + break; + } + } + } + + if( bAbort2 ) + return false; + + VirtualProtect( reinterpret_cast< void * >( pAddy ), 1, PAGE_READWRITE, &dwOldProtect ); + pAddy[ 0 ] = byteReplace2; VirtualProtect( reinterpret_cast< void * >( pAddy ), 1, dwOldProtect, &dwNewProtect ); return true; |