ibstream.h

Go to the documentation of this file.
00001 //-----------------------------------------------------------------------------
00002 // Project     : SDK Core
00003 // Version     : 1.0
00004 //
00005 // Category    : SDK Core Interfaces
00006 // Filename    : ibstream.h
00007 // Created by  : Steinberg, 01/2004
00008 // Modified    : $Date: 2008/01/10 10:36:29 $
00009 // Description : Interface for reading/writing streams
00010 //
00011 //-----------------------------------------------------------------------------
00012 // LICENSE
00013 // © 2008, Steinberg Media Technologies GmbH, All Rights Reserved
00014 //-----------------------------------------------------------------------------
00015 // This Software Development Kit may not be distributed in parts or its entirety  
00016 // without prior written agreement by Steinberg Media Technologies GmbH. 
00017 // This SDK must not be used to re-engineer or manipulate any technology used  
00018 // in any Steinberg or Third-party application or software module, 
00019 // unless permitted by law.
00020 // Neither the name of the Steinberg Media Technologies nor the names of its
00021 // contributors may be used to endorse or promote products derived from this 
00022 // software without specific prior written permission.
00023 // 
00024 // THIS SDK IS PROVIDED BY STEINBERG MEDIA TECHNOLOGIES GMBH "AS IS" AND
00025 // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
00026 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
00027 // IN NO EVENT SHALL STEINBERG MEDIA TECHNOLOGIES GMBH BE LIABLE FOR ANY DIRECT, 
00028 // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
00029 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
00030 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 
00031 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 
00032 // OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
00033 // OF THE POSSIBILITY OF SUCH DAMAGE.
00034 //------------------------------------------------------------------------------
00035 
00036 #ifndef __ibstream__
00037 #define __ibstream__
00038 
00039 #include "funknown.h"
00040 
00041 namespace Steinberg {
00042 
00043 //------------------------------------------------------------------------
00048 //------------------------------------------------------------------------
00049 
00050 class IBStream: public FUnknown
00051 {
00052 public:
00053         enum IStreamSeekMode
00054         {
00055                 kIBSeekSet = 0, 
00056                 kIBSeekCur,     
00057                 kIBSeekEnd      
00058         };
00059 
00060 //------------------------------------------------------------------------
00065         virtual tresult PLUGIN_API read  (void* buffer, int32 numBytes, int32* numBytesRead = 0) = 0;
00066         
00071         virtual tresult PLUGIN_API write (void* buffer, int32 numBytes, int32* numBytesWritten = 0) = 0;
00072         
00077         virtual tresult PLUGIN_API seek  (int64 pos, int32 mode, int64* result = 0) = 0;
00078         
00081         virtual tresult PLUGIN_API tell  (int64* pos) = 0;
00082 //------------------------------------------------------------------------
00083         static const FUID iid;
00084 };
00085 
00086 DECLARE_CLASS_IID (IBStream, 0xC3BF6EA2, 0x30994752, 0x9B6BF990, 0x1EE33E9B)
00087 
00088 }
00089 
00090 #endif
Empty

Copyright ©2008 Steinberg Media Technologies. All Rights Reserved.