Changeset 491


Ignore:
Timestamp:
07/01/08 19:48:00 (11 years ago)
Author:
Eoin
Message:

Merging changes from branch into trunk.

Location:
trunk
Files:
28 edited

Legend:

Unmodified
Added
Removed
  • trunk/sln/libtorrent/libtorrent.vcproj

    r459 r491  
    440440                        </File> 
    441441                        <File 
     442                                RelativePath="..\..\lib\libtorrent\src\create_torrent.cpp" 
     443                                > 
     444                        </File> 
     445                        <File 
     446                                RelativePath="..\..\lib\libtorrent\src\disk_buffer_holder.cpp" 
     447                                > 
     448                        </File> 
     449                        <File 
    442450                                RelativePath="..\..\lib\libtorrent\src\disk_io_thread.cpp" 
    443451                                > 
     
    460468                        </File> 
    461469                        <File 
     470                                RelativePath="..\..\lib\libtorrent\src\file_storage.cpp" 
     471                                > 
     472                        </File> 
     473                        <File 
    462474                                RelativePath="..\..\lib\libtorrent\src\file_win.cpp" 
    463475                                > 
    464476                        </File> 
    465477                        <File 
     478                                RelativePath="..\..\lib\libtorrent\src\GeoIP.c" 
     479                                > 
     480                        </File> 
     481                        <File 
     482                                RelativePath="..\..\lib\libtorrent\src\gzip.cpp" 
     483                                > 
     484                        </File> 
     485                        <File 
    466486                                RelativePath="..\..\lib\libtorrent\src\http_connection.cpp" 
    467487                                > 
    468488                        </File> 
    469489                        <File 
     490                                RelativePath="..\..\lib\libtorrent\src\http_parser.cpp" 
     491                                > 
     492                        </File> 
     493                        <File 
    470494                                RelativePath="..\..\lib\libtorrent\src\http_stream.cpp" 
    471495                                > 
     
    488512                        </File> 
    489513                        <File 
     514                                RelativePath="..\..\lib\libtorrent\src\lazy_bdecode.cpp" 
     515                                > 
     516                        </File> 
     517                        <File 
    490518                                RelativePath="..\..\lib\libtorrent\src\logger.cpp" 
    491519                                > 
     
    496524                        </File> 
    497525                        <File 
     526                                RelativePath="..\..\lib\libtorrent\src\magnet_uri.cpp" 
     527                                > 
     528                        </File> 
     529                        <File 
     530                                RelativePath="..\..\lib\libtorrent\src\mapped_storage.cpp" 
     531                                > 
     532                        </File> 
     533                        <File 
     534                                RelativePath="..\..\lib\libtorrent\src\memdebug.cpp" 
     535                                > 
     536                        </File> 
     537                        <File 
    498538                                RelativePath="..\..\lib\libtorrent\src\metadata_transfer.cpp" 
    499539                                > 
     
    504544                        </File> 
    505545                        <File 
     546                                RelativePath="..\..\lib\libtorrent\src\parse_url.cpp" 
     547                                > 
     548                        </File> 
     549                        <File 
    506550                                RelativePath="..\..\lib\libtorrent\src\pe_crypto.cpp" 
    507551                                > 
     
    532576                        </File> 
    533577                        <File 
     578                                RelativePath="..\..\lib\libtorrent\src\smart_ban.cpp" 
     579                                > 
     580                        </File> 
     581                        <File 
    534582                                RelativePath="..\..\lib\libtorrent\src\socks4_stream.cpp" 
    535583                                > 
     
    564612                        </File> 
    565613                        <File 
     614                                RelativePath="..\..\lib\libtorrent\src\udp_socket.cpp" 
     615                                > 
     616                        </File> 
     617                        <File 
    566618                                RelativePath="..\..\lib\libtorrent\src\udp_tracker_connection.cpp" 
    567619                                > 
     
    569621                        <File 
    570622                                RelativePath="..\..\lib\libtorrent\src\upnp.cpp" 
     623                                > 
     624                        </File> 
     625                        <File 
     626                                RelativePath="..\..\lib\libtorrent\src\ut_metadata.cpp" 
    571627                                > 
    572628                        </File> 
     
    677733                        UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" 
    678734                        > 
     735                        <File 
     736                                RelativePath="..\..\lib\libtorrent\include\libtorrent\bitfield.hpp" 
     737                                > 
     738                        </File> 
     739                        <File 
     740                                RelativePath="..\..\lib\libtorrent\include\libtorrent\create_torrent.hpp" 
     741                                > 
     742                        </File> 
     743                        <File 
     744                                RelativePath="..\..\lib\libtorrent\include\libtorrent\disk_buffer_holder.hpp" 
     745                                > 
     746                        </File> 
     747                        <File 
     748                                RelativePath="..\..\lib\libtorrent\include\libtorrent\file_storage.hpp" 
     749                                > 
     750                        </File> 
     751                        <File 
     752                                RelativePath="..\..\lib\libtorrent\include\libtorrent\GeoIP.h" 
     753                                > 
     754                        </File> 
     755                        <File 
     756                                RelativePath="..\..\lib\libtorrent\include\libtorrent\gzip.hpp" 
     757                                > 
     758                        </File> 
     759                        <File 
     760                                RelativePath="..\..\lib\libtorrent\include\libtorrent\http_parser.hpp" 
     761                                > 
     762                        </File> 
     763                        <File 
     764                                RelativePath="..\..\lib\libtorrent\include\libtorrent\lazy_entry.hpp" 
     765                                > 
     766                        </File> 
     767                        <File 
     768                                RelativePath="..\..\lib\libtorrent\include\libtorrent\magnet_uri.hpp" 
     769                                > 
     770                        </File> 
     771                        <File 
     772                                RelativePath="..\..\lib\libtorrent\include\libtorrent\parse_url.hpp" 
     773                                > 
     774                        </File> 
     775                        <File 
     776                                RelativePath="..\..\lib\libtorrent\include\libtorrent\ssl_stream.hpp" 
     777                                > 
     778                        </File> 
     779                        <File 
     780                                RelativePath="..\..\lib\libtorrent\include\libtorrent\udp_socket.hpp" 
     781                                > 
     782                        </File> 
    679783                        <Filter 
    680784                                Name="libtorrent" 
  • trunk/src/AddTorrentDialog.hpp

    r437 r491  
    3535                startPaused_(p), 
    3636                compactStorage_(c) 
    37         { Load(); } 
     37        {  
     38                load_from_ini();  
     39        } 
    3840 
    3941        ~AddTorrentDialog()  
    40         { Save(); }      
     42        {  
     43                save_to_ini();  
     44        }        
    4145 
    4246        enum { IDD = IDD_ADD_TORRENT }; 
  • trunk/src/Halite.cpp

    r478 r491  
    9999        boost::filesystem::path::default_name_check(boost::filesystem::native); 
    100100 
    101         AtlInitCommonControls(ICC_COOL_CLASSES | ICC_BAR_CLASSES);       
    102         HINSTANCE hInstRich = ::LoadLibrary(CRichEditCtrl::GetLibraryName()); 
     101        WTL::AtlInitCommonControls(ICC_COOL_CLASSES | ICC_BAR_CLASSES);  
     102        HINSTANCE hInstRich = ::LoadLibrary(WTL::CRichEditCtrl::GetLibraryName()); 
    103103        ATLASSERT(hInstRich != NULL); 
    104104    
     
    150150                        new hal::EventMsg((wformat(L"Working Directory: %1%.") % hal::app().working_directory()), hal::event_logger::info)));            
    151151                 
    152                 CMessageLoop theLoop; 
     152                WTL::CMessageLoop theLoop; 
    153153                _Module.AddMessageLoop(&theLoop); 
    154154                         
     
    171171                _Module.RemoveMessageLoop(); 
    172172 
    173                 halite().save(); 
     173                halite().save_to_ini(); 
    174174                hal::ini().save_data();          
    175175        } 
  • trunk/src/Halite.hpp

    r478 r491  
    9898                dll_(L"") 
    9999        { 
    100                 load(); 
     100                load_from_ini(); 
    101101        } 
    102102         
  • trunk/src/HaliteDialog.hpp

    r455 r491  
    104104                         
    105105                        SetDefaults(names, widths, order, visible); 
    106                         Load(); 
     106                        load_from_ini(); 
    107107                } 
    108108                 
     
    110110                { 
    111111                        GetListViewDetails(); 
    112                         save(); 
     112                        save_to_ini(); 
    113113                } 
    114114                 
     
    198198 
    199199private: 
    200         CButton m_btn_start; 
     200        WTL::CButton m_btn_start; 
    201201        DialogListView m_list; 
    202         CProgressBarCtrl m_prog; 
     202        WTL::CProgressBarCtrl m_prog; 
    203203         
    204204        CHaliteEditCtrl<int> totalConnections_; 
  • trunk/src/HaliteListView.cpp

    r482 r491  
    3535         
    3636        SetDefaults(names, widths, order, visible); 
    37         Load(); 
     37        SafeLoadFromIni(); 
    3838} 
    3939 
     
    7676{ 
    7777        GetListViewDetails(); 
    78         Save(); 
     78        save_to_ini(); 
    7979} 
    8080 
  • trunk/src/HaliteListViewDlg.hpp

    r441 r491  
    105105        { 
    106106                std::wstring save_prompt = hal::app().res_wstr(IDS_SAVEPROMPT);          
    107                 CFolderDialog fldDlg(NULL, save_prompt.c_str(), 
     107                WTL::CFolderDialog fldDlg(NULL, save_prompt.c_str(), 
    108108                        BIF_RETURNONLYFSDIRS|BIF_NEWDIALOGSTYLE); 
    109109                 
     
    121121        { 
    122122                std::wstring save_prompt = hal::app().res_wstr(IDS_SAVEPROMPT);          
    123                 CFolderDialog fldDlg(NULL, save_prompt.c_str(), 
     123                WTL::CFolderDialog fldDlg(NULL, save_prompt.c_str(), 
    124124                        BIF_RETURNONLYFSDIRS|BIF_NEWDIALOGSTYLE); 
    125125                 
  • trunk/src/HaliteSortListViewCtrl.hpp

    r447 r491  
    194194                autoSort_ = autoSort; 
    195195        } 
     196 
     197        void SafeLoadFromIni() 
     198        { 
     199                std::vector<wstring> listNames; 
     200                std::vector<int> listWidths; 
     201                std::vector<int> listOrder; 
     202                std::vector<bool> listVisible; 
     203 
     204                listNames.assign(listNames_.begin(), listNames_.end()); 
     205                listWidths.assign(listWidths_.begin(), listWidths_.end()); 
     206                listOrder.assign(listOrder_.begin(), listOrder_.end()); 
     207                listVisible.assign(listVisible_.begin(), listVisible_.end()); 
     208 
     209                TBase* pT = static_cast<TBase*>(this); 
     210                if (!pT->load_from_ini() || !vectorSizePreConditions()) 
     211                { 
     212                        listNames_.assign(listNames.begin(), listNames.end()); 
     213                        listWidths_.assign(listWidths.begin(), listWidths.end()); 
     214                        listOrder_.assign(listOrder.begin(), listOrder.end()); 
     215                        listVisible_.assign(listVisible.begin(), listVisible.end()); 
     216                }                
     217        } 
    196218         
    197219        void ApplyDetails() 
     
    466488         
    467489private: 
    468         void vectorSizePreConditions() 
    469         { 
     490        bool vectorSizePreConditions() 
     491        { 
     492                bool ret = (listNames_.size() == listWidths_.size()) && 
     493                        (listNames_.size() == listOrder_.size()) && 
     494                        (listNames_.size() == listVisible_.size()); 
     495 
     496                assert(ret); 
     497                return ret; 
    470498        } 
    471499         
  • trunk/src/HaliteWindow.cpp

    r482 r491  
    4141        rect.right = 620; 
    4242         
    43         load(); 
     43        load_from_ini(); 
    4444} 
    4545 
    4646HaliteWindow::~HaliteWindow() 
    4747{ 
    48         save(); 
     48        save_to_ini(); 
    4949        ATLASSERT(!::IsWindow(m_hWnd)); 
    5050} 
     
    7373        hal::event_log.post(shared_ptr<hal::EventDetail>( 
    7474                new hal::EventMsg(L"Loading Halite config..."))); 
    75         hal::config().load(); 
     75        hal::config().load_from_ini(); 
    7676         
    7777        hal::event_log.post(shared_ptr<hal::EventDetail>( 
     
    418418        splitterPos = m_Split.GetSplitterPos(); 
    419419 
    420         save(); 
     420        save_to_ini(); 
    421421        hal::ini().save_data(); 
    422422         
     
    437437 
    438438        // Resave for sake of your health. 
    439         save(); 
    440         halite().save(); 
     439        save_to_ini(); 
     440        halite().save_to_ini(); 
    441441        hal::ini().save_data(); 
    442442                 
  • trunk/src/NewTorrentDialog.cpp

    r478 r491  
    7979{                
    8080        GetListViewDetails(); 
    81         save(); 
     81        save_to_ini(); 
    8282} 
    8383 
  • trunk/src/NewTorrentDialog.hpp

    r472 r491  
    4141#include "halEvent.hpp" 
    4242#include "DdxEx.hpp" 
    43 #include "ListViewEdit.hpp" 
    4443#include "HaliteSortListViewCtrl.hpp" 
    4544#include "NewTorrentTrackerLV.hpp" 
     
    8079                 
    8180                SetDefaults(names, widths, order, visible, true); 
    82                 Load(); 
     81                load_from_ini(); 
    8382        } 
    8483 
     
    110109 
    111110class DetailsSheet : 
    112     public CPropertyPageImpl<DetailsSheet>, 
    113     public CWinDataExchangeEx<DetailsSheet>, 
     111        public WTL::CPropertyPageImpl<DetailsSheet>, 
     112        public CWinDataExchangeEx<DetailsSheet>, 
    114113        public CAutoSizeWindow<DetailsSheet, false> 
    115114{ 
    116115protected: 
    117116        typedef DetailsSheet thisClass; 
    118         typedef CPropertyPageImpl<thisClass> sheetClass; 
     117        typedef WTL::CPropertyPageImpl<thisClass> sheetClass; 
    119118        typedef CAutoSizeWindow<thisClass, false> autosizeClass; 
    120119 
     
    175174 
    176175class FilesSheet : 
    177     public CPropertyPageImpl<FilesSheet>, 
     176        public WTL::CPropertyPageImpl<FilesSheet>, 
    178177        public CAutoSizeWindow<FilesSheet, false> 
    179178{ 
    180179protected: 
    181180        typedef FilesSheet thisClass; 
    182         typedef CPropertyPageImpl<thisClass> sheetClass; 
     181        typedef WTL::CPropertyPageImpl<thisClass> sheetClass; 
    183182        typedef CAutoSizeWindow<thisClass, false> autosizeClass; 
    184183 
     
    230229 
    231230class TrackerSheet : 
    232     public CPropertyPageImpl<TrackerSheet>, 
     231        public WTL::CPropertyPageImpl<TrackerSheet>, 
    233232        public CAutoSizeWindow<TrackerSheet, false> 
    234233{ 
    235234protected: 
    236235        typedef TrackerSheet thisClass; 
    237         typedef CPropertyPageImpl<thisClass> sheetClass; 
     236        typedef WTL::CPropertyPageImpl<thisClass> sheetClass; 
    238237        typedef CAutoSizeWindow<thisClass, false> autosizeClass; 
    239238 
     
    273272 
    274273class PeersSheet : 
    275     public CPropertyPageImpl<PeersSheet>, 
     274        public WTL::CPropertyPageImpl<PeersSheet>, 
    276275        public CAutoSizeWindow<PeersSheet, false> 
    277276{ 
    278277protected: 
    279278        typedef PeersSheet thisClass; 
    280         typedef CPropertyPageImpl<thisClass> sheetClass; 
     279        typedef WTL::CPropertyPageImpl<thisClass> sheetClass; 
    281280        typedef CAutoSizeWindow<thisClass, false> autosizeClass; 
    282281 
     
    317316 
    318317class NewTorrentDialog : 
    319         public CPropertySheet, 
     318        public WTL::CPropertySheet, 
    320319        public hal::IniBase<NewTorrentDialog>, 
    321         public CDialogResize<NewTorrentDialog> 
     320        public WTL::CDialogResize<NewTorrentDialog> 
    322321{ 
    323322        typedef NewTorrentDialog thisClass; 
    324323        typedef hal::IniBase<thisClass> iniClass; 
    325         typedef CDialogResize<thisClass> resizeClass; 
     324        typedef WTL::CDialogResize<thisClass> resizeClass; 
    326325 
    327326public: 
     
    334333                fileSheet_(bind(&NewTorrentDialog::EnableSave, this, _1)) 
    335334    { 
    336                 Load(); 
     335                load_from_ini(); 
    337336 
    338337                AddPage(fileSheet_); 
     
    383382 
    384383                GetWindowRect(rect_); 
    385                 Save(); 
     384                save_to_ini(); 
    386385        } 
    387386 
  • trunk/src/NewTorrentPeersLV.cpp

    r478 r491  
    2929{                
    3030        GetListViewDetails(); 
    31         save(); 
     31        save_to_ini(); 
    3232} 
    3333 
  • trunk/src/NewTorrentPeersLV.hpp

    r447 r491  
    5959                 
    6060                SetDefaults(names, widths, order, visible, true); 
    61                 Load(); 
     61                load_from_ini(); 
    6262        } 
    6363 
  • trunk/src/NewTorrentTrackerLV.cpp

    r456 r491  
    3030{                
    3131        GetListViewDetails(); 
    32         save(); 
     32        save_to_ini(); 
    3333} 
    3434 
  • trunk/src/NewTorrentTrackerLV.hpp

    r447 r491  
    5858                 
    5959                SetDefaults(names, widths, order, visible, true); 
    60                 Load(); 
     60                load_from_ini(); 
    6161        } 
    6262 
  • trunk/src/SplashDialog.hpp

    r482 r491  
    3030        public CDialogImpl<SplashDialog>, 
    3131        public hal::IniBase<SplashDialog>, 
    32         public CWinDataExchange<SplashDialog>, 
    33         public CDialogResize<SplashDialog> 
     32        public WTL::CWinDataExchange<SplashDialog>, 
     33        public WTL::CDialogResize<SplashDialog> 
    3434{ 
    3535protected: 
    3636        typedef SplashDialog thisClass; 
    37         typedef CDialogImpl<thisClass> baseClass; 
     37        typedef ATL::CDialogImpl<thisClass> baseClass; 
    3838        typedef hal::IniBase<thisClass> iniClass; 
    39         typedef CDialogResize<thisClass> resizeClass; 
     39        typedef WTL::CDialogResize<thisClass> resizeClass; 
    4040 
    4141public: 
     
    4646                rect_(0,0,0,0) 
    4747        { 
    48                 Load(); 
     48                load_from_ini(); 
    4949        } 
    5050 
     
    9797 
    9898                GetWindowRect(rect_); 
    99                 Save(); 
     99                save_to_ini(); 
    100100                EndDialog(0); 
    101101        } 
     
    120120 
    121121                GetWindowRect(rect_); 
    122                 Save(); 
     122                save_to_ini(); 
    123123                EndDialog(0); 
    124124        } 
     
    132132        boost::scoped_ptr<thread> thread_ptr; 
    133133 
    134         CRect rect_; 
     134        WTL::CRect rect_; 
    135135}; 
    136136 
  • trunk/src/WTLx/GenericAddDialog.hpp

    r444 r491  
    3434                rect_(0,0,0,0) 
    3535        { 
    36                 Load();  
     36                load_from_ini();         
    3737        } 
    3838 
    3939        ~GenericAddDialog() 
    4040        { 
    41                 Save(); 
     41                save_to_ini(); 
    4242        } 
    4343         
     
    117117template<class TBase, class dlgClass, int dialogIDD>  
    118118class GenericAddContainerDialog : 
    119         public CDialogImpl<GenericAddContainerDialog<TBase, dlgClass, dialogIDD> >, 
    120         public CDialogResize<GenericAddContainerDialog<TBase, dlgClass, dialogIDD> >, 
     119        public ATL::CDialogImpl<GenericAddContainerDialog<TBase, dlgClass, dialogIDD> >, 
     120        public WTL::CDialogResize<GenericAddContainerDialog<TBase, dlgClass, dialogIDD> >, 
    121121        private hal::IniBase<GenericAddContainerDialog<TBase, dlgClass, dialogIDD> >, 
    122122        private boost::noncopyable 
    123123{ 
    124124        typedef GenericAddContainerDialog<TBase, dlgClass, dialogIDD> thisClass; 
    125         typedef CDialogResize<thisClass> resizeClass; 
     125        typedef WTL::CDialogResize<thisClass> resizeClass; 
    126126        typedef hal::IniBase<thisClass> iniClass; 
    127127         
     
    133133                rect_(0,0,0,0) 
    134134        { 
    135                 Load();  
     135                load_from_ini();         
    136136        } 
    137137 
    138138        ~GenericAddContainerDialog() 
    139139        { 
    140                 Save(); 
     140                save_to_ini(); 
    141141        } 
    142142         
  • trunk/src/advtabs/Debug.hpp

    r478 r491  
    104104                SetDefaults(names, widths, order, visible, true); 
    105105                 
    106                 load(); 
     106                load_from_ini(); 
    107107        } 
    108108         
     
    117117        { 
    118118                GetListViewDetails(); 
    119                 save(); 
     119                save_to_ini(); 
    120120        } 
    121121 
  • trunk/src/advtabs/Files.cpp

    r478 r491  
    2929         
    3030        SetDefaults(names, widths, order, visible, true); 
    31         Load(); 
     31        load_from_ini(); 
    3232} 
    3333 
     
    341341void AdvFilesDialog::OnDestroy() 
    342342{                
    343         Save();  
    344 } 
     343        save_to_ini();  
     344} 
  • trunk/src/advtabs/Files.hpp

    r478 r491  
    168168        { 
    169169                GetListViewDetails(); 
    170                 Save(); 
     170                save_to_ini(); 
    171171        } 
    172172         
     
    400400                splitterPos(150) 
    401401        { 
    402                 Load(); 
     402                load_from_ini(); 
    403403        } 
    404404         
  • trunk/src/advtabs/Peers.hpp

    r447 r491  
    8383                 
    8484                SetDefaults(names, widths, order, visible, true); 
    85                 Load(); 
     85                load_from_ini(); 
    8686        } 
    8787         
     
    8989        { 
    9090                GetListViewDetails(); 
    91                 save(); 
     91                save_to_ini(); 
    9292        } 
    9393         
  • trunk/src/advtabs/TrackerListView.cpp

    r456 r491  
    3030{                
    3131        GetListViewDetails(); 
    32         save(); 
     32        save_to_ini(); 
    3333} 
    3434 
  • trunk/src/advtabs/TrackerListView.hpp

    r447 r491  
    5656                 
    5757                SetDefaults(names, widths, order, visible, true); 
    58                 Load(); 
     58                load_from_ini(); 
    5959        } 
    6060 
  • trunk/src/halConfig.cpp

    r482 r491  
    117117                 
    118118        // Settings seem to have applied ok! 
    119         save();  
     119        save_to_ini();   
    120120        return true; 
    121121} 
  • trunk/src/halIni.hpp

    r478 r491  
    3030        {} 
    3131         
    32         void Save() 
     32        void save_to_ini() 
    3333        { 
    3434                std::wstringstream xml_data; 
     
    4040                adapter_.save_stream_data(xml_data); 
    4141        } 
    42          
    43         void save() { Save(); } 
    4442 
    4543        template<typename P> 
     
    7775        } 
    7876         
    79         void Load() 
     77        bool load_from_ini() 
    8078        { 
    8179                std::wstringstream xml_data;             
     
    9593                        hal::event_log.post(boost::shared_ptr<hal::EventDetail>( 
    9694                                new hal::EventXmlException(hal::from_utf8(e.what()), hal::from_utf8(name_))));  
     95 
     96                        return false; 
    9797                } 
     98 
     99                return true; 
    98100        } 
    99          
    100         void load() { Load(); } 
    101101         
    102102private: 
  • trunk/src/halSession.hpp

    r484 r491  
    889889                { 
    890890                 
    891                 the_torrents_.save(); 
     891                the_torrents_.save_to_ini(); 
    892892                bittorrentIni.save_data(); 
    893893                         
     
    942942                hal::event_log.post(shared_ptr<hal::EventDetail>( 
    943943                        new hal::EventMsg(L"Loading torrent parameters.", hal::event_logger::info)));    
    944                 the_torrents_.load(); 
     944                the_torrents_.load_from_ini(); 
    945945                hal::event_log.post(shared_ptr<hal::EventDetail>( 
    946946                        new hal::EventMsg(L"Loading done!", hal::event_logger::info))); 
  • trunk/src/stdAfx.hpp

    r392 r491  
    1919#define HALITE_SENDING_CMD 68816889 
    2020 
    21 //      #define _WTL_NO_AUTOMATIC_NAMESPACE 
     21// #define _WTL_NO_AUTOMATIC_NAMESPACE 
    2222 
    2323#include <winsock2.h> 
Note: See TracChangeset for help on using the changeset viewer.