STROUT.IDL
/************************************************************************* 
            Copyright Microsoft Corp. 1992 - 1996 
                Remote Machine strout sample 
 
    FILE    :   strout.idl 
 
    PURPOSE :   This file defines the interface for the strout example 
   
*************************************************************************/ 
[ 
uuid(cab31280-b996-11cf-9548-00aa00374e69), // UUID 
pointer_default(unique),                    // Pointer default 
version(1.0)                                // Program version 
] 
interface strout_sample 
{ 
 
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ 
/* Define a type for the second dimension variables that should be      */ 
/* returned from the server. This should also work for UNICODE          */ 
/* characters                                                           */ 
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ 
#if defined _UNICODE 
    typedef [string, unique] wchar_t * str; // String of wide chars      
#else 
    typedef [string, unique] char * str;    // String of ASCII chars     
#endif 
 
    /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ 
    /* Declaration of the remote procedure.                             */ 
    /* This procedure will get the environment strings from the server  */ 
    /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ 
    void GetRemoteEnv(                   
        // Number of lines in the envirionment block     
        [in, out] unsigned long   * Lines,  
        // Pointer to an array of pointers to the lines in the env. block.  
        // MUST have comma before *Lines in size_of  to set the size of  
        // the right dimension, which is the size of the array of pointers 
        [out, size_is(,*Lines)] str **EnvBlock); 
     
    // Procedure to shut down the server  
    void ShutDown(void); 
}