home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 December / PCWKCD1296.iso / vjplusb / activex / inetsdk / samples / msconf / cnftest / rtns.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-03  |  5.3 KB  |  209 lines

  1. /* ----------------------------------------------------------------------
  2.  
  3.     CNFTEST sample for Microsoft ActiveX Conferencing
  4.  
  5.     Unpublished work.
  6.     Copyright (c) 1996, Microsoft Corporation
  7.     All rights reserved.
  8.  
  9.     rtns.c
  10.  
  11.     General utility routines, specific to this application
  12.  
  13. ---------------------------------------------------------------------- */
  14.  
  15. #include "main.h"
  16.  
  17.  
  18. /*  D W  I P  A D D R  F R O M  S Z */
  19. /*----------------------------------------------------------------------------
  20.     %%Function: DwIpAddrFromSz
  21.  
  22. ----------------------------------------------------------------------------*/
  23. DWORD DwIpAddrFromSz(LPSTR lpsz)
  24. {
  25.     // REVIEW: there must be a better way...
  26.  
  27.     DWORD dwAddr = 0;
  28.     DWORD iTemp;
  29.     unsigned short ch;
  30.     int i;
  31.  
  32.     if (FEmptySz(lpsz))
  33.         return 0;
  34.  
  35.     for (i = 0; i < 4; i++)
  36.     {
  37.         iTemp = 0;
  38.         for ( ; ;)
  39.         {
  40.             ch = *lpsz++;
  41.             if (('.' == ch) || ('\0' == ch))
  42.                 break;
  43.             if (ch > '9')
  44.                 break;
  45.             iTemp = (iTemp*10) + ch - '0';
  46.             
  47.         }
  48.         dwAddr = (dwAddr << 8) | iTemp;
  49.  
  50.         if ('\0' == ch)
  51.             break;
  52.     }
  53.  
  54.     return dwAddr;
  55. }
  56.  
  57.  
  58.  
  59. /*  D U M P  C O N F  I N F O */
  60. /*----------------------------------------------------------------------------
  61.     %%Function: DumpConfInfo
  62.  
  63. ----------------------------------------------------------------------------*/
  64. VOID DumpConfInfo(LPCONFINFO lpConfInfo)
  65. {
  66.     int  cch;
  67.     CHAR sz[MAX_PATH];
  68.  
  69.     if (NULL == lpConfInfo)
  70.     {
  71.         Log(LOG_ALWAYS, "<no conference data>");
  72.         return;
  73.     }
  74.     Assert(sizeof(CONFINFO) == lpConfInfo->dwSize);
  75.  
  76.     Log2(LOG_ALWAYS, "ConfInfo [%s]  %d bytes",
  77.         lpConfInfo->szConferenceName, lpConfInfo->dwSize);
  78.     Log1(LOG_ALWAYS, "  Users: %d", lpConfInfo->cUsers);
  79.     Log1(LOG_ALWAYS, "  HConf: %08X", lpConfInfo->hConf);
  80.     Log1(LOG_ALWAYS, "  GCCID: %08X", lpConfInfo->dwGCCID);
  81.  
  82.     // determine media type
  83.     SetEmptySz(sz);
  84.     if (lpConfInfo->dwMediaType & CONF_MT_DATA)
  85.         lstrcat(sz, "Data+");
  86.     if (lpConfInfo->dwMediaType & CONF_MT_AUDIO)
  87.         lstrcat(sz, "Audio+");
  88.     if (lpConfInfo->dwMediaType & CONF_MT_VIDEO)
  89.         lstrcat(sz, "Video+");
  90.  
  91.     cch = CchSz(sz);
  92.     if (0 == cch)
  93.         lstrcpy(sz, "<none>");
  94.     else
  95.         sz[cch-1] = '\0';
  96.  
  97.     Log1(LOG_ALWAYS, "  Media: %s", sz);
  98. }
  99.  
  100.  
  101. /*  D U M P  U S E R  I N F O */
  102. /*----------------------------------------------------------------------------
  103.     %%Function: DumpUserInfo
  104.  
  105. ----------------------------------------------------------------------------*/
  106. VOID DumpUserInfo(LPCONFUSERINFO lpUserInfo)
  107. {
  108.     if (NULL == lpUserInfo)
  109.     {
  110.         Log(LOG_ALWAYS, "<no user data>");
  111.         return;
  112.     }
  113.     Assert(sizeof(CONFUSERINFO) == lpUserInfo->dwSize);
  114.  
  115.     Log2(LOG_ALWAYS, "UserInfo [%s]  %d bytes",
  116.         lpUserInfo->szUserName, lpUserInfo->dwSize);
  117.     Log2(LOG_ALWAYS, "  dwUserId=%08X (%d)",
  118.         lpUserInfo->dwUserId, lpUserInfo->dwUserId);
  119. }
  120.  
  121.  
  122. #define STRING_CASE(val)               case val: pcsz = #val; break
  123.  
  124.  
  125. /*  G E T  C O N F N  S T R I N G */
  126. /*----------------------------------------------------------------------------
  127.     %%Function: GetConfnString
  128.  
  129. ----------------------------------------------------------------------------*/
  130. LPCTSTR GetConfnString(DWORD dwCode)
  131. {
  132.     LPCTSTR pcsz;
  133.     static CHAR sz[MAX_PATH];
  134.  
  135.     switch (dwCode)
  136.         {
  137.     STRING_CASE(CONFN_CONFERENCE_INIT);
  138.     STRING_CASE(CONFN_CONFERENCE_START);
  139.     STRING_CASE(CONFN_CONFERENCE_STOP);
  140.     STRING_CASE(CONFN_CONFERENCE_ERROR);
  141.     STRING_CASE(CONFN_USER_ADDED);
  142.     STRING_CASE(CONFN_USER_REMOVED);
  143.     STRING_CASE(CONFN_USER_UPDATE);
  144.     STRING_CASE(CONFN_PEER_ADDED);
  145.     STRING_CASE(CONFN_PEER_REMOVED);
  146.     STRING_CASE(CONFN_WINDOW_SHARED);
  147.     STRING_CASE(CONFN_WINDOW_UNSHARED);
  148.     STRING_CASE(CONFN_DATA_SENT);
  149.     STRING_CASE(CONFN_DATA_RECEIVED);
  150.     STRING_CASE(CONFN_FILESEND_START);
  151.     STRING_CASE(CONFN_FILESEND_PROGRESS);
  152.     STRING_CASE(CONFN_FILESEND_COMPLETE);
  153.     STRING_CASE(CONFN_FILESEND_ERROR);
  154.     STRING_CASE(CONFN_FILERECEIVE_START);
  155.     STRING_CASE(CONFN_FILERECEIVE_PROGRESS);
  156.     STRING_CASE(CONFN_FILERECEIVE_COMPLETE);
  157.     STRING_CASE(CONFN_FILERECEIVE_ERROR);
  158.     default:
  159.         wsprintf(sz, "CONFN %d (%X)", dwCode);
  160.         pcsz = sz;
  161.         break;
  162.         }
  163.  
  164.     return pcsz;
  165. }
  166.  
  167.  
  168. /*  G E T  C O N F  E R R  S T R I N G */
  169. /*----------------------------------------------------------------------------
  170.     %%Function: GetConferrString
  171.  
  172. ----------------------------------------------------------------------------*/
  173. LPCTSTR GetConferrString(CONFERR dwErr)
  174. {
  175.     LPCTSTR pcsz;
  176.     static CHAR sz[MAX_PATH];
  177.  
  178.     switch (dwErr)
  179.     {
  180.     default:
  181.         wsprintf(sz, "Error %d (0x%08X)", dwErr, dwErr);
  182.         pcsz = sz;
  183.         break;
  184.     STRING_CASE(CONFERR_INVALID_PARAMETER);
  185.     STRING_CASE(CONFERR_INVALID_HCONF);
  186.     STRING_CASE(CONFERR_INVALID_BUFFER);
  187.     STRING_CASE(CONFERR_BUFFER_TOO_SMALL);
  188.     STRING_CASE(CONFERR_ENUM_COMPLETE);
  189.     STRING_CASE(CONFERR_INVALID_OPERATION);
  190.     STRING_CASE(CONFERR_INVALID_ADDRESS);
  191.     STRING_CASE(CONFERR_FILE_TRANSFER);
  192.     STRING_CASE(CONFERR_FILE_SEND_ABORT);
  193.     STRING_CASE(CONFERR_FILE_RECEIVE_ABORT);
  194.     STRING_CASE(CONFERR_NO_APP_SHARING);
  195.     STRING_CASE(CONFERR_NOT_SHARED);
  196.     STRING_CASE(CONFERR_NOT_SHAREABLE);
  197.     STRING_CASE(CONFERR_OUT_OF_MEMORY);
  198.     STRING_CASE(CONFERR_FILE_NOT_FOUND);
  199.     STRING_CASE(CONFERR_PATH_NOT_FOUND);
  200.     STRING_CASE(CONFERR_ACCESS_DENIED);
  201.     STRING_CASE(CONFERR_RECEIVE_DIR);
  202.     STRING_CASE(CONFERR_NOT_IMPLEMENTED);
  203.     STRING_CASE(CONFERR_INVALID_HWND);
  204.     STRING_CASE(CONFERR_INTERNAL);
  205.     STRING_CASE(CONFERR_SUCCESS);
  206.     }
  207.     return pcsz;
  208. }
  209.