//////////////////////////////////////////////////////////////////////////////// // Copyright (c) 2003, Jan Knepper. All Rights Reserved. // // Written by Jan Knepper // // // // Soli Deo Gloria! To God be the Glory! // // // // Redistribution and use in source and binary forms, with or without // // modification, are permitted provided that the following conditions are // // met: // // * Redistributions of source code must retain the above copyright notice, // // this list of conditions and the following disclaimer. // // * Redistributions in binary form must reproduce the above copyright // // notice, this list of conditions and the following disclaimer in the // // documentation and/or other materials provided with the distribution. // // * Neither the name of the author nor the names of its contributors may be // // used to endorse or promote products derived from this software without // // specific prior written permission. // // // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED // // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR // // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR // // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, // // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, // // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR // // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF // // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING // // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS // // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // //////////////////////////////////////////////////////////////////////////////// #ifndef WAB_HPP #define WAB_HPP #include #include #include #include class WAB { private : HINSTANCE wab32; LPWABOPEN wabopen; LPADRBOOK addressbook; LPWABOBJECT object; LPABCONT container; LPMAPITABLE table; LPSRowSet rowset; LPSRow row; private : bool _VCard ( SRow *, LPTSTR ) const; private : inline bool IsLoaded () const { return ( ( wab32 != 0 ) && ( wabopen != 0 ) ); } public : WAB (); ~WAB (); bool Open (); void Close (); inline bool IsOpen () const { return ( IsLoaded () && ( addressbook != 0 ) && ( object != 0 ) && ( container != 0 ) && ( table != 0 ) ); } DWORD NumberOfEntries () const; bool GetEntry ( DWORD ); bool GetVCard ( LPTSTR ) const; bool GetAllVCards ( LPTSTR ) const; }; #endif