home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c082_122 / 7.ddi / CLIOLE.ZIP / CLIOLEER.C < prev    next >
Encoding:
C/C++ Source or Header  |  1992-06-10  |  4.7 KB  |  178 lines

  1. // Windows 3.1 Demo Program
  2. // Copyright (c) 1992 by Borland International
  3.  
  4. #define STRICT
  5.  
  6. #include <windows.h>
  7. #include <ole.h>
  8. #include <process.h>
  9. #pragma hdrstop
  10.  
  11. #include "clioleer.h"
  12.  
  13.  
  14.  
  15. LPSTR Trans( OLESTATUS status )
  16. {
  17.     switch(status)
  18.     {
  19.         case OLE_OK:
  20.             return "OLE_OK";
  21.         case OLE_WAIT_FOR_RELEASE:
  22.             return "OLE_WAIT_FOR_RELEASE";
  23.         case OLE_BUSY:
  24.             return "OLE_BUSY";
  25.         case OLE_ERROR_PROTECT_ONLY:
  26.             return "OLE_ERROR_PROTECT_ONLY";
  27.         case OLE_ERROR_MEMORY:
  28.             return "OLE_ERROR_MEMORY";
  29.         case OLE_ERROR_STREAM:
  30.             return "OLE_ERROR_STREAM";
  31.         case OLE_ERROR_STATIC:
  32.             return "OLE_ERROR_STATIC";
  33.         case OLE_ERROR_BLANK:
  34.             return "OLE_ERROR_BLANK";
  35.         case OLE_ERROR_DRAW:
  36.             return "OLE_ERROR_DRAW";
  37.         case OLE_ERROR_METAFILE:
  38.             return "OLE_ERROR_METAFILE";
  39.         case OLE_ERROR_ABORT:
  40.             return "OLE_ERROR_ABORT";
  41.         case OLE_ERROR_CLIPBOARD:
  42.             return "OLE_ERROR_CLIPBOARD";
  43.         case OLE_ERROR_FORMAT:
  44.             return "OLE_ERROR_FORMAT";
  45.         case OLE_ERROR_OBJECT:
  46.             return "OLE_ERROR_OBJECT";
  47.         case OLE_ERROR_OPTION:
  48.             return "OLE_ERROR_OPTION";
  49.         case OLE_ERROR_PROTOCOL:
  50.             return "OLE_ERROR_PROTOCOL";
  51.         case OLE_ERROR_ADDRESS:
  52.             return "OLE_ERROR_ADDRESS";
  53.         case OLE_ERROR_NOT_EQUAL:
  54.             return "OLE_ERROR_NOT_EQUAL";
  55.         case OLE_ERROR_HANDLE:
  56.             return "OLE_ERROR_HANDLE";
  57.         case OLE_ERROR_GENERIC:
  58.             return "OLE_ERROR_GENERIC";
  59.         case OLE_ERROR_CLASS:
  60.             return "OLE_ERROR_CLASS";
  61.         case OLE_ERROR_SYNTAX:
  62.             return "OLE_ERROR_SYNTAX";
  63.         case OLE_ERROR_DATATYPE:
  64.             return "OLE_ERROR_DATATYPE";
  65.         case OLE_ERROR_PALETTE:
  66.             return "OLE_ERROR_PALETTE";
  67.         case OLE_ERROR_NOT_LINK:
  68.             return "OLE_ERROR_NOT_LINK";
  69.         case OLE_ERROR_NOT_EMPTY:
  70.             return "OLE_ERROR_NOT_EMPTY";
  71.         case OLE_ERROR_SIZE:
  72.             return "OLE_ERROR_SIZE";
  73.         case OLE_ERROR_DRIVE:
  74.             return "OLE_ERROR_DRIVE";
  75.         case OLE_ERROR_NETWORK:
  76.             return "OLE_ERROR_NETWORK";
  77.         case OLE_ERROR_NAME:
  78.             return "OLE_ERROR_NAME";
  79.         case OLE_ERROR_TEMPLATE:
  80.             return "OLE_ERROR_TEMPLATE";
  81.         case OLE_ERROR_NEW:
  82.             return "OLE_ERROR_NEW";
  83.         case OLE_ERROR_EDIT:
  84.             return "OLE_ERROR_EDIT";
  85.         case OLE_ERROR_OPEN:
  86.             return "OLE_ERROR_OPEN";
  87.         case OLE_ERROR_NOT_OPEN:
  88.             return "OLE_ERROR_NOT_OPEN";
  89.         case OLE_ERROR_LAUNCH:
  90.             return "OLE_ERROR_LAUNCH";
  91.         case OLE_ERROR_COMM:
  92.             return "OLE_ERROR_COMM";
  93.         case OLE_ERROR_TERMINATE:
  94.             return "OLE_ERROR_TERMINATE";
  95.         case OLE_ERROR_COMMAND:
  96.             return "OLE_ERROR_COMMAND";
  97.         case OLE_ERROR_SHOW:
  98.             return "OLE_ERROR_SHOW";
  99.         case OLE_ERROR_DOVERB:
  100.             return "OLE_ERROR_DOVERB";
  101.         case OLE_ERROR_ADVISE_NATIVE:
  102.             return "OLE_ERROR_ADVISE_NATIVE";
  103.         case OLE_ERROR_ADVISE_PICT:
  104.             return "OLE_ERROR_ADVISE_PICT";
  105.         case OLE_ERROR_ADVISE_RENAME:
  106.             return "OLE_ERROR_ADVISE_RENAME";
  107.         case OLE_ERROR_POKE_NATIVE:
  108.             return "OLE_ERROR_POKE_NATIVE";
  109.         case OLE_ERROR_REQUEST_NATIVE:
  110.             return "OLE_ERROR_REQUEST_NATIVE";
  111.         case OLE_ERROR_REQUEST_PICT:
  112.             return "OLE_ERROR_REQUEST_PICT";
  113.         case OLE_ERROR_SERVER_BLOCKED:
  114.             return "OLE_ERROR_SERVER_BLOCKED";
  115.         case OLE_ERROR_REGISTRATION:
  116.             return "OLE_ERROR_REGISTRATION";
  117.         case OLE_ERROR_ALREADY_REGISTERED:
  118.             return "OLE_ERROR_ALREADY_REGISTERED";
  119.         case OLE_ERROR_TASK:
  120.             return "OLE_ERROR_TASK";
  121.         case OLE_ERROR_OUTOFDATE:
  122.             return "OLE_ERROR_OUTOFDATE";
  123.         case OLE_ERROR_CANT_UPDATE_CLIENT:
  124.             return "OLE_ERROR_CANT_UPDATE_CLIENT";
  125.         case OLE_ERROR_UPDATE:
  126.             return "OLE_ERROR_UPDATE";
  127.         case OLE_ERROR_SETDATA_FORMAT:
  128.             return "OLE_ERROR_SETDATA_FORMAT";
  129.         case OLE_ERROR_STATIC_FROM_OTHER_OS:
  130.             return "OLE_ERROR_STATIC_FROM_OTHER_OS";
  131.         case OLE_WARN_DELETE_DATA:
  132.             return "OLE_WARN_DELETE_DATA";
  133.         default:
  134.             return "Not a Status Message";
  135.     }
  136. }
  137.  
  138.  
  139. void CheckOleError( OLESTATUS x , unsigned  line , char * file )
  140. // If the message is not OleOk, it gets it translated into the
  141. // appropiate string and pops up a message box giving the file
  142. // and line number.  If The user says no, it exits.
  143. //
  144. {
  145.     if ( x != OLE_OK ) {
  146.         char cap[80];
  147.         char mes[80];
  148.         wsprintf( mes , "%s ( %d )  Ok to Proceed?" , (LPSTR)Trans( x ) , x );
  149.         wsprintf( cap , "OleError - File: %s  Line: %d", (LPSTR)file, line );
  150.         if ( IDNO == MessageBox( GetFocus() ,
  151.              mes ,
  152.              cap ,
  153.              MB_YESNO ) )
  154.         {
  155.             exit( x );
  156.         }
  157.     }
  158. }
  159.  
  160. void WaitOleNotBusy( OLESTATUS oleStatus, LPOLEOBJECT lpObject ,
  161.             unsigned line, char * file )
  162. {
  163.     MSG msg;
  164.     if ( oleStatus == OLE_WAIT_FOR_RELEASE )
  165.     {
  166.         while ( ( oleStatus = OleQueryReleaseStatus( lpObject )) == OLE_BUSY )
  167.         {
  168.             if ( GetMessage( &msg , NULL, NULL, NULL ))
  169.             {
  170.                 TranslateMessage( &msg );
  171.                 DispatchMessage(  &msg );
  172.             }
  173.         }
  174.         if ( oleStatus == OLE_OK ) return;
  175.     }
  176.     CheckOleError( oleStatus, line, file );
  177. }
  178.