⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mfccddb.htm

📁 MfcCDDB v1.11 A freeware MFC class to support access to CDDB servers Welcome to MfcCDDB, a collectio
💻 HTM
📖 第 1 页 / 共 4 页
字号:
<html>

<head>
<title>MFCCDDB v1.11</title>
</head>

<body bgcolor="#FFFFFF">

<p align="left"><font face="Arial"><strong><big><big><big><big><img border="0"
src="mfccddb.gif" width="93" height="76">  MfcCDDB v1.11</big></big></big></big></strong></font></p>

<p><font face="Arial">Welcome to <strong>MfcCDDB</strong>, a collection of freeware MFC
classes to support access to the <strong>C</strong>ompact <strong>D</strong>isc <strong>D</strong>ata<strong>B</strong>ases
on the Internet.</font></p>

<p><font face="Arial">This document assumes you are already familiar with the CDDB
protocol, if this is not the case then I would strongly advise you to read the CDDB howto
document which you can download from the CDDB web site at <a href="http://www,cddb.org">http://www,cddb.org</a>.
An important point to note is that you will need to get your application verified with
CDDB before you can release your product even when you are using MFCCDDB to connect to
CDDB. Again check on the CDDB web site for more details.</font></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<table>
  <tr>
    <td><font face="Arial"><a href="#Features">Features</a></font></td>
  </tr>
  <tr>
    <td><font face="Arial"><a href="#Usage">Usage</a></font></td>
  </tr>
  <tr>
    <td><font face="Arial"><a href="#History">History</a></font></td>
  </tr>
  <tr>
    <td><font face="Arial"><a href="#APIReference">API Reference</a></font></td>
  </tr>
  <tr>
    <td><font face="Arial"><a href="#Enhancements">Planned Enhancements</a></font></td>
  </tr>
  <tr>
    <td><font face="Arial"><a href="#Contact">Contacting the Author</a></font></td>
  </tr>
</table>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><font face="Arial"><a name="Features"></a><big><strong><big>Features</big></strong></big>
</font>

<ul>
  <li><font color="#000000" size="3" face="Arial">Simple and clean C++ interface.</font></li>
  <li><font color="#000000" size="3" face="Arial">The interface provided is synchronous which
    provides an easier programming model than using asynchronous sockets.</font></li>
  <li><font color="#000000" size="3" face="Arial">The code does not rely on the MFC socket
    classes. These classes have a number of shortcomings, one of which causes problems when
    they are used in NT services.</font></li>
  <li><font color="#000000" size="3" face="Arial">The code can be used in a console
    application without any problems (Again this is not the case for the MFC socket classes).</font></li>
  <li><font color="#000000" size="3" face="Arial">A configurable timeout for the connection
    can be set through the class API.</font></li>
</ul>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><a name="Usage"></a><font face="Arial"><big><big><strong>Usage</strong></big></big></font>

<ul>
  <li><font color="#000000" size="3" face="Arial">To use the class in your code simply include
    mfccddb.cpp in your project and #include mfccddb.h in which ever of your modules needs to
    make calls to the classes.</font></li>
  <li><font face="Arial">Your code will need to include MFC either statically or dynamically.</font></li>
  <li><font face="Arial">You will need to have a functioning Winsock stack installed and
    correctly initialized prior to calling any functions in the CCDDB which access the CDDB
    servers. Depending on your application, this will involve calling either WSAStartup or
    AfxSocketInit at startup of your application.</font></li>
  <li><font face="Arial">You will also need to have winsock.h or afxsock.h in your precompiled
    header. The code will work just as well in a GUI or console app. The code should also work
    in a multithreaded application, although it has not be explicitly tested in this scenario.</font></li>
  <li><font face="Arial">To see the class in action, have a look at the code in InitInstance
    in the module &quot;app.cpp&quot;.</font></li>
</ul>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><big><a name="History"></a></big><font color="#000000" size="5" face="Arial"><strong>History</strong></font></p>

<p><font color="#000000" size="3" face="Arial"><strong>V1.0 (11th May 1999)</strong></font>

<ul>
  <li><font color="#000000" size="3" face="Arial">Initial public release.</font></li>
</ul>

<p><font color="#000000" size="3" face="Arial"><strong>V1.1 (20th May 1999)</strong></font>

<ul>
  <li><font face="Arial">Added support for MOTD (Message of the Day).</font></li>
  <li><font face="Arial">Added support for Submitting an album to CDDB.</font></li>
  <li><font face="Arial">Fixed a number of places where calling the TRACE function was causing
    an access violation</font></li>
  <li><font face="Arial">Fixed a bug in GetErrorMessage which was causing SDK errors to return
    the string &quot;The operation completed successfully&quot;<font color="#000000" size="3">.</font></font></li>
</ul>

<p><font color="#000000" size="3" face="Arial"><strong>V1.11 (14th July 1999)</strong></font>

<ul>
  <li><font face="Arial">Fixed two potential GPF's in the CCDDB::ReadResponse function.</font></li>
  <li><font face="Arial">Minor Update to the documentation.</font></li>
</ul>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p class="crt"><font face="Arial"><a name="APIReference"></a><big><big><strong>API
Reference</strong></big></big></font></p>

<p><font face="Arial">The API consists of the following classes and their methods and
variables</font></p>

<p>&nbsp;</p>

<p><strong><font face="Arial">CCDDBSite</font></strong></p>

<p><strong><font face="Arial"><a href="#CCDDBSite">CCDDBSite::CCDDBSite</a><br>
<a href="#CCDDBSite_operator=">CCDDBSite::operator=</a><br>
<a href="#m_sSite">CCDDBSite::m_sSite</a><br>
<a href="#m_nPort">CCDDBSite::m_nPort</a><br>
<a href="#m_sAddress">CCDDBSite::m_sAddress</a><br>
<a href="#m_bNorthing">CCDDBSite::m_bNorthing</a><br>
<a href="#m_nLatitudeMinutes">CCDDBSite::m_nLatitudeMinutes</a><br>
<a href="#m_bEasting">CCDDBSite::m_bEasting</a><br>
<a href="#m_nLongitudeMinutes">CCDDBSite::m_nLongitudeMinutes</a><br>
<a href="#m_sDescription">CCDDBSite::m_sDescription</a></font></strong></p>

<p>&nbsp;</p>

<p><strong><font face="Arial">CCDDBQueryResult</font></strong></p>

<p><strong><font face="Arial"><a href="#CCDDBQueryResult">CCDDBQueryResult::CCDDBQueryResult</a><br>
<a href="#CCDDBQueryResult_operator=">CCDDBQueryResult::operator=</a><br>
<a href="#m_sCategory">CCDDBQueryResult::m_sCategory</a><br>
<a href="#result_m_dwDiscID">CCDDBQueryResult::m_dwDiscID</a><br>
<a href="#result_m_sArtist">CCDDBQueryResult::m_sArtist</a><br>
<a href="#result_m_sTitle">CCDDBQueryResult::m_sTitle</a></font></strong></p>

<p>&nbsp;</p>

<p><strong><font face="Arial"><a href="#CCDDBRecord">CCDDBRecord</a></font></strong></p>

<p align="left"><strong><font face="Arial"><a href="#m_TrackOffsets">CCDDBRecord::m_TrackOffsets</a><br>
<a href="#m_nDiskLength">CCDDBRecord::m_nDiskLength</a><br>
<a href="#m_nDatabaseRevision">CCDDBRecord::m_nDatabaseRevision</a><br>
<a href="#m_sClientName">CCDDBRecord::m_sClientName</a><br>
<a href="#m_sClientVersion">CCDDBRecord::m_sClientVersion</a><br>
<a href="#m_sClientComments">CCDDBRecord::m_sClientComments</a><br>
<a href="#record_m_dwDiscID">CCDDBRecord::m_dwDiscID</a><br>
<a href="#record_m_sArtist">CCDDBRecord::m_sArtist</a><br>
<a href="#record_m_sTitle">CCDDBRecord::m_sTitle</a><br>
<a href="#m_TrackTitles">CCDDBRecord::m_TrackTitles</a><br>
<a href="#m_ExtendedData">CCDDBRecord::m_ExtendedData</a><br>
<a href="#m_ExtendedTrackData">CCDDBRecord::m_ExtendedTrackData</a><br>
<a href="#m_PlayOrder">CCDDBRecord::m_PlayOrder</a></font></strong></p>

<p>&nbsp;</p>

<p><a href="#CCDDBStatus"><strong><font face="Arial">CCDDBStatus</font></strong></a></p>

<p><strong><font face="Arial"><a href="#m_nCurrentProtocol">CCDDBStatus::m_nCurrentProtocol</a><br>
<a href="#m_nMaxProtocol">CCDDBStatus::m_nMaxProtocol</a><br>
<a href="#m_bGetsAllowed">CCDDBStatus::m_bGetsAllowed</a><br>
<a href="#m_bUpdatesAllowed">CCDDBStatus::m_bUpdatesAllowed</a><br>
<a href="#m_bPostingAllowed">CCDDBStatus::m_bPostingAllowed</a><br>
<a href="#m_bQuotes">CCDDBStatus::m_bQuotes</a><br>
<a href="#m_nCurrentUsers">CCDDBStatus::m_nCurrentUsers</a><br>
<a href="#m_nMaxUsers">CCDDBStatus::m_nMaxUsers</a><br>
<a href="#m_bStripExtended">CCDDBStatus::m_bStripExtended</a><br>
<a href="#m_nDatabaseEntries">CCDDBStatus::m_nDatabaseEntries</a><br>
<a href="#m_Categories">CCDDBStatus::m_Categories</a><br>
<a href="#m_CategoryEntries">CCDDBStatus::m_CategoryEntries</a><br>
<a href="#m_PendingSites">CCDDBStatus::m_PendingSites</a><br>
<a href="#m_PendingEntries">CCDDBStatus::m_PendingEntries</a></font></strong></p>

<p>&nbsp;</p>

<p><a href="#CCDDBTrackPosition"><strong><font face="Arial">CCDDBTrackPosition</font></strong></a></p>

<p><strong><font face="Arial"><a href="#CCDDBTrackPosition_operator=">CCDDBTrackPosition::operator=</a><br>
<a href="#m_nMinute">CCDDBTrackPosition::m_nMinute</a><br>
<a href="#m_nSecond">CCDDBTrackPosition::m_nSecond</a><br>
<a href="#m_nFrame">CCDDBTrackPosition::m_nFrame</a></font></strong></p>

<p>&nbsp;</p>

<p><strong><font face="Arial"><a href="#CCDDB">CCDDB::CCDDB</a><br>
<a href="#GetCDROMDrives">CCDDB::GetCDROMDrives</a><br>
<a href="#ComputeDiscID">CCDDB::ComputeDiscID</a><br>
<a href="#GetTrackPositions">CCDDB::GetTrackPositions</a><br>
<a href="#Sites">CCDDB::Sites</a><br>
<a href="#Categories">CCDDB::Categories</a><br>
<a href="#Status">CCDDB::Status</a><br>
<a href="#Query">CCDDB::Query</a><br>
<a href="#Read">CCDDB::Read</a><br>
<a href="#Submit">CCDDB::Submit</a><br>
<a href="#MessageOfTheDay">CCDDB::MessageOfTheDay</a><br>
<a href="#SetTimeout">CCDDB::SetTimeout</a><br>
<a href="#GetTimeout">CCDDB::GetTimeout</a><br>
<a href="#GetLastError">CCDDB::GetLastError</a><br>
<a href="#GetErrorMessage">CCDDB::GetErrorMessage</a><br>
<a href="#GetLastCommandResponse">CCDDB::GetLastCommandResponse</a><br>
<a href="#GetProductName">CCDDB::GetProductName</a><br>
<a href="#SetProductName">CCDDB::SetProductName</a><br>
<a href="#GetProductVersion">CCDDB::GetProductVersion</a><br>
<a href="#SetProductVersion">CCDDB::SetProductVersion</a><br>
<a href="#GetHelloCommand">CCDDB::GetHelloCommand</a></font></strong></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><a name="CCDDBSite"></a><big><font face="Arial"><strong>CCDDBSite::CCDDBSite</strong></font></big></p>

<p><font face="Arial"><strong>CCDDBSite(BOOL </strong><em>bRetrieve</em><strong> = TRUE);</strong></font></p>

<p><font face="Arial"><strong>Parameters</strong></font></p>

<p><font face="Arial"><em>bRetrieve</em> TRUE if the members of CDDBSite should be setup
for retrieving data otherwise FALSE for submitting albums.</font></p>

<p><font face="Arial"><strong>Remarks</strong></font></p>

<p><font face="Arial">Standard constructor for the class. This class represents the
information for a single site as returned from the <strong><a href="#Sites">CDDB::Sites</a></strong>
function. This class is also used when calling any of the other CCDDB functions which
access a CDDB server.</font></p>

<p>&nbsp;</p>

<p><font face="Arial"><a name="CCDDBSite_operator="></a><big><strong>CCDDBSite::operator=</strong></big></font></p>

<p><font face="Arial"><strong>CCDDBSite&amp; operator=(const CCDDBSite&amp;</strong><em>
site</em><strong>);</strong></font></p>

<p><font face="Arial"><strong>Parameters</strong></font></p>

<p><font face="Arial"><em>site</em> This CCDDBSite instance to copy into this instance.</font></p>

<p><font face="Arial"><strong>Remarks</strong></font></p>

<p><font face="Arial">Standard operator= for the CCDDBSite class.</font></p>

<p>&nbsp;</p>

<p><font face="Arial"><a name="m_sSite"></a><big><strong>CCDDBSite::m_sSite</strong></big></font></p>

<p><font face="Arial"><strong>Remarks</strong></font></p>

<p><font face="Arial">m_sSite is of type CString and contains the IP address or domain
name of the CDDB HTTP server.</font></p>

<p>&nbsp;</p>

<p><font face="Arial"><a name="m_nPort"></a><big><strong>CCDDBSite::m_nPort</strong></big></font></p>

<p><font face="Arial"><strong>Remarks</strong></font></p>

<p><font face="Arial">m_nSite is of type int and contains the IP port number of the CDDB
HTTP server. Normally this will be 80 which is the standard HTTP port number.</font></p>

<p>&nbsp;</p>

<p><font face="Arial"><a name="m_sAddress"></a><big><strong>CCDDBSite::m_sAddress</strong></big></font></p>

<p><font face="Arial"><strong>Remarks</strong></font></p>

<p><font face="Arial">m_sAddress is of type CString and contains the URL which is
requested when making the HTTP request. Normally this is either &quot;~cddb/cddb.cgi&quot;
or &quot;~cddb/submit.cgi&quot;.</font></p>

<p>&nbsp;</p>

<p><font face="Arial"><a name="m_bNorthing"></a><big><strong>CCDDBSite::m_bNorthing</strong></big></font></p>

<p><font face="Arial"><strong>Remarks</strong></font></p>

<p><font face="Arial">m_bNorthing is of type BOOL and is TRUE if the CDDB site is reported
as being in the northern hemisphere or FALSE if in the southern hemisphere.</font></p>

<p>&nbsp;</p>

<p><font face="Arial"><a name="m_nLatitudeMinutes"></a><big><strong>CCDDBSite::m_nLatitudeMinutes</strong></big></font></p>

<p><font face="Arial"><strong>Remarks</strong></font></p>

<p><font face="Arial">m_nLatitudeMinutes is of type int and contains the latitude of the
CDDB site in minutes of degrees north or south of the equator.</font></p>

<p>&nbsp;</p>

<p><font face="Arial"><a name="m_bEasting"></a><big><strong>CCDDBSite::m_bEasting</strong></big></font></p>

<p><font face="Arial"><strong>Remarks</strong></font></p>

<p><font face="Arial">m_bEasting is of type BOOL and is TRUE if the CDDB site is reported
as being west of the Greenwich prime meridian or FALSE if west of it.</font></p>

<p>&nbsp;</p>

<p><font face="Arial"><a name="m_nLongitudeMinutes"></a><big><strong>CCDDBSite::m_nLongitudeMinutes</strong></big></font></p>

<p><font face="Arial"><strong>Remarks</strong></font></p>

<p><font face="Arial">m_nLongitudeMinutes is of type int and contains the longitude of the
CDDB site in minutes of degrees east or west of the prime meridian.</font></p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -