PIPE.IDL
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*\ 
|                    Copyright Microsoft Corp. 1992-1996                 | 
|                        Remote Machine pipe sample                      | 
|                                                                        | 
|  FILE      :   pipe.idl                                                | 
|                                                                        | 
|  PURPOSE   :   This file defines the interface for the pipe example    | 
|                                                                        | 
\*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ 
[ 
uuid(60ceb4a0-c2f1-11cf-9556-00aa00374e69),     // UUID 
pointer_default(unique),                        // Pointer default 
version(1.0)                                    // Interface version 
] 
interface pipe_sample 
{ 
// Declare the pipe data type. This should also work for UNICODE. 
#ifdef _UNICODE 
    typedef pipe wchar_t CHAR_PIPE_TYPE; 
#else 
    typedef pipe unsigned char CHAR_PIPE_TYPE; 
#endif 
 
    /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ 
    /* ScrambleFile - This procedure sends a file from the client to    */ 
    /*              the server, the server then "encodes" it , and the  */ 
    /*              file is sent back to the client                     */ 
    /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ 
    void ScrambleFile( 
        [in] unsigned long Action,              // Encode / Decode 
        [in, out] CHAR_PIPE_TYPE *pipe_data);   // The file content 
 
 
    /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ 
    /* ShutDown- This procedure sends a message to the server that it  */ 
    /*          can stop listen for remote procedure calls              */ 
    /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/ 
    void ShutDown(void);            // Procedure to shut down the server  
}