Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

Shareaza.idl

Go to the documentation of this file.
00001 //
00002 // Shareaza.idl
00003 //
00004 // Copyright (c) Shareaza Development Team, 2002-2005.
00005 // This file is part of SHAREAZA (www.shareaza.com)
00006 //
00007 // Shareaza is free software; you can redistribute it
00008 // and/or modify it under the terms of the GNU General Public License
00009 // as published by the Free Software Foundation; either version 2 of
00010 // the License, or (at your option) any later version.
00011 //
00012 // Shareaza is distributed in the hope that it will be useful,
00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015 // GNU General Public License for more details.
00016 //
00017 // You should have received a copy of the GNU General Public License
00018 // along with Shareaza; if not, write to the Free Software
00019 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00020 //
00021 
00022 [ uuid(E3481FE3-E062-4E1C-A23A-62A6D13CBFB8), version(1.0) ]
00023 library Shareaza
00024 {
00025         importlib("stdole32.tlb");
00026 
00027         interface IApplication;
00028 
00029         //
00030         // Common Data Types
00031         //
00032 
00033         typedef enum
00034         {
00035                 TSUNKNOWN, TSTRUE, TSFALSE
00036         } STRISTATE;
00037 
00038         //
00039         // XML Object Model
00040         //
00041 
00042         interface ISXMLNode;
00043         interface ISXMLElement;
00044         interface ISXMLElements;
00045         interface ISXMLAttribute;
00046         interface ISXMLAttributes;
00047 
00048         typedef enum
00049         {
00050                 xmlNode, xmlElement, xmlAttribute
00051         } SXMLNodeType;
00052 
00053         [ uuid(A0F89545-DAD8-4441-9DF4-BCB106B12234), dual, oleautomation ]
00054         interface ISXMLNode : IDispatch
00055         {
00056                 [id(1),propget] HRESULT Parent( [out,retval] ISXMLElement** ppParent );
00057                 [id(2),propget] HRESULT Type( [out,retval] SXMLNodeType* pnType );
00058                 [id(3),propget] HRESULT AsNode( [out,retval] ISXMLNode** ppNode );
00059                 [id(4),propget] HRESULT AsElement( [out,retval] ISXMLNode** ppElement );
00060                 [id(5),propget] HRESULT AsAttribute( [out,retval] ISXMLNode** ppAttribute );
00061                 [id(6),propget] HRESULT Name( [out,retval] BSTR* psName );
00062                 [id(6),propput] HRESULT Name( [in] BSTR sName );
00063                 [id(0),propget] HRESULT Value( [out,retval] BSTR* psValue );
00064                 [id(0),propput] HRESULT Value( [in] BSTR sValue );
00065 
00066                 [id(10)] HRESULT Delete();
00067                 [id(11)] HRESULT IsNamed( [in] BSTR sName, [out,retval] VARIANT_BOOL* pbResult );
00068 
00069         };
00070 
00071         [ uuid(5198A470-F9EE-49eb-948C-F8176610A8B2), dual, oleautomation ]
00072         interface ISXMLElement : ISXMLNode
00073         {
00074                 [id(20),propget] HRESULT Elements( [out,retval] ISXMLElements** ppElements );
00075                 [id(21),propget] HRESULT Attributes( [out,retval] ISXMLAttributes** ppAttributes );
00076 
00077                 [id(30)] HRESULT Detach();
00078                 [id(31)] HRESULT Clone( [out,retval] ISXMLElement** ppClone );
00079                 [id(32)] HRESULT ToString( [out,retval] BSTR* psValue );
00080                 [id(33)] HRESULT ToStringEx( [in] VARIANT_BOOL bHeader, [in] VARIANT_BOOL bNewlines, [out,retval] BSTR* psValue );
00081                 [id(34)] HRESULT FromString( [in] BSTR sXML, [out,retval] ISXMLElement** ppElement );
00082                 [id(35)] HRESULT GetWords( [out,retval] BSTR* psWords );
00083         };
00084 
00085         [ uuid(6D4598A7-26A1-4990-BA60-DE0E212AF93C), dual, oleautomation ]
00086         interface ISXMLAttribute : ISXMLNode
00087         {
00088                 [id(30)] HRESULT Detach();
00089                 [id(31)] HRESULT Clone( [out,retval] ISXMLAttribute** ppClone );
00090         };
00091 
00092         [ uuid(10BF271C-85A3-4ad4-8930-CC0E3CEEADA4), dual, oleautomation ]
00093         interface ISXMLElements : IDispatch
00094         {
00095                 [id(-4),propget,restricted] HRESULT _NewEnum( [out,retval] IUnknown** ppEnum );
00096                 [id(0),propget] HRESULT Item( [in] VARIANT vIndex, [out,retval] ISXMLElement** ppElement );
00097                 [id(1),propget] HRESULT Count( [out,retval] LONG* pnCount );
00098                 [id(2)] HRESULT Create( [in] BSTR strName, [out,retval] ISXMLElement** ppElement );
00099                 [id(3)] HRESULT Attach( [in] ISXMLElement* pElement );
00100                 [id(4)] HRESULT RemoveAll();
00101                 [id(5),propget] HRESULT First( [out,retval] ISXMLElement** ppElement );
00102                 [id(6),propget] HRESULT ByName( [in] BSTR sName, [out,retval] ISXMLElement** ppElement );
00103         };
00104 
00105         [ uuid(8E03E1BF-CCC0-4616-9C0D-8204A83BAEB4), dual, oleautomation ]
00106         interface ISXMLAttributes : IDispatch
00107         {
00108                 [id(-4),propget,restricted] HRESULT _NewEnum( [out,retval] IUnknown** ppEnum );
00109                 [id(0),propget] HRESULT Item( [in] VARIANT vIndex, [out,retval] ISXMLAttribute** ppAttribute );
00110                 [id(1),propget] HRESULT Count( [out,retval] LONG* pnCount );
00111                 [id(2)] HRESULT Add( [in] BSTR strName, [in] BSTR strValue );
00112                 [id(3)] HRESULT Create( [in] BSTR strName, [out,retval] ISXMLAttribute** ppAttribute );
00113                 [id(4)] HRESULT Attach( [in] ISXMLAttribute* pAttribute );
00114                 [id(5)] HRESULT RemoveAll();
00115                 [id(6),propget] HRESULT ByName( [in] BSTR sName, [out,retval] ISXMLAttribute** ppAttribute );
00116                 [id(7),propget] HRESULT Get( [in] BSTR sName, [out,retval] BSTR* psValue );
00117         };
00118 
00119         //
00120         // General Plugin Support
00121         //
00122 
00123         [ uuid(D1B5D3A4-B890-470a-A3FF-9700F3C2A063) ]
00124         interface IGeneralPlugin : IUnknown
00125         {
00126                 HRESULT SetApplication( [in] IApplication* pApplication );
00127                 HRESULT QueryCapabilities( [out] DWORD* pnCaps );
00128                 HRESULT Configure();
00129                 HRESULT OnSkinChanged();
00130         };
00131 
00132         //
00133         // Command Plugin
00134         //
00135 
00136         [ uuid(CB25DAED-D745-45db-994E-32639D2888A9) ]
00137         interface ICommandPlugin : IUnknown
00138         {
00139                 HRESULT RegisterCommands();
00140                 HRESULT InsertCommands();
00141                 HRESULT OnUpdate( [in] UINT nCommandID, [in,out] STristate* pbVisible, [in,out] STristate* pbEnabled, [in,out] STristate* pbChecked );
00142                 HRESULT OnCommand( [in] UINT nCommandID );
00143         };
00144 
00145         //
00146         // Execute Plugin
00147         //
00148 
00149         [ uuid(8E878640-37B5-44a3-A37C-FC3BF1CCF6B6) ]
00150         interface IExecutePlugin : IUnknown
00151         {
00152                 HRESULT OnExecute( [in] BSTR sFilePath );
00153                 HRESULT OnEnqueue( [in] BSTR sFilePath );
00154         };
00155 
00156         //
00157         // Window Plugin
00158         //
00159 
00160         interface ISToolbar;
00161 
00162         [ uuid(ADDB77AE-3483-4a15-B391-AE31563BD7E3) ]
00163         interface IPluginWindow : IUnknown
00164         {
00165                 HRESULT ListenForSingleMessage( [in] UINT nMessage );
00166                 HRESULT ListenForMultipleMessages( [in] SAFEARRAY* pMessages );
00167                 HRESULT Create1( [in] BSTR bsCaption, [in] HICON hIcon, [in] VARIANT_BOOL bPanel, [in] VARIANT_BOOL bTabbed );
00168                 HRESULT Create2( [in] UINT nCommandID, [in] VARIANT_BOOL bPanel, [in] VARIANT_BOOL bTabbed );
00169                 HRESULT GetHwnd( [out] HWND* phWnd );
00170                 HRESULT HandleMessage( [out] LRESULT* plResult );
00171                 HRESULT LoadState( [in] VARIANT_BOOL bMaximise );
00172                 HRESULT SaveState();
00173                 HRESULT ThrowMenu( [in] BSTR sName, [in] LONG nDefaultID, [in] POINT* pPoint );
00174                 HRESULT AddToolbar( [in] BSTR sName, [in] LONG nPosition, [out] HWND* phWnd, [out,retval] ISToolbar** ppToolbar );
00175                 HRESULT AdjustWindowRect( [in,out] RECT* pRect, [in] VARIANT_BOOL bClientToWindow );
00176         };
00177 
00178         [ uuid(C6631461-2654-4572-BB3C-54F52F0FF1B9) ]
00179         interface IPluginWindowOwner : IUnknown
00180         {
00181                 HRESULT OnTranslate( [in] MSG* pMessage );
00182                 HRESULT OnMessage( [in] UINT nMessage, [in] WPARAM wParam, [in] LPARAM lParam, [out] LRESULT* plResult );
00183                 HRESULT OnUpdate( [in] UINT nCommandID, [in,out] STristate* pbVisible, [in,out] STristate* pbEnabled, [in,out] STristate* pbChecked );
00184                 HRESULT OnCommand( [in] UINT nCommandID );
00185         };
00186 
00187         //
00188         // LibraryBuilder Plugin
00189         //
00190 
00191         [ uuid(32496CEA-3B51-4f2f-9CE7-73D6AC942C34) ]
00192         interface ILibraryBuilderPlugin : IUnknown
00193         {
00194                 HRESULT Process( [in] HANDLE hFile, [in] BSTR sFile, [in] ISXMLElement* pXML );
00195         };
00196 
00197         //
00198         // ImageService Plugin
00199         //
00200 
00201         typedef struct
00202         {
00203                 int cbSize;
00204                 int nFlags;
00205                 int nWidth;
00206                 int nHeight;
00207                 int nComponents;
00208                 int nQuality;
00209         } IMAGESERVICEDATA;
00210 
00211         typedef enum
00212         {
00213                 IMAGESERVICE_SCANONLY           = 0x01,
00214                 IMAGESERVICE_PARTIAL_IN         = 0x02,
00215                 IMAGESERVICE_PARTIAL_OUT        = 0x04
00216         } IMAGESERVICEFLAGS;
00217 
00218         [ uuid(AD49786E-09C1-4069-B48A-15AD42D6CED1) ]
00219         interface IImageServicePlugin : IUnknown
00220         {
00221                 HRESULT LoadFromFile( [in] HANDLE hFile, [in] DWORD nLength, [in,out] IMAGESERVICEDATA* pParams, [out] SAFEARRAY** ppImage );
00222                 HRESULT LoadFromMemory( [in] SAFEARRAY* pMemory, [in,out] IMAGESERVICEDATA* pParams, [out] SAFEARRAY** ppImage );
00223                 HRESULT SaveToFile( [in] HANDLE hFile, [in,out] IMAGESERVICEDATA* pParams, [in] SAFEARRAY* pImage);
00224                 HRESULT SaveToMemory( [out] SAFEARRAY** ppMemory, [in,out] IMAGESERVICEDATA* pParams, [in] SAFEARRAY* pImage);
00225         };
00226 
00227         //
00228         // DownloadPreview Plugin
00229         //
00230 
00231         [ uuid(52A97CBD-2B99-45e8-B6F9-41E9CD583960) ]
00232         interface IDownloadPreviewSite : IUnknown
00233         {
00234                 HRESULT GetSuggestedFilename( [out,retval] BSTR* psFile );
00235                 HRESULT GetAvailableRanges( [out,retval] SAFEARRAY **pArray );
00236                 HRESULT SetProgressRange( [in] DWORD nRange );
00237                 HRESULT SetProgressPosition( [in] DWORD nPosition );
00238                 HRESULT SetProgressMessage( [in] BSTR sMessage );
00239                 HRESULT QueueDeleteFile( [in] BSTR sTempFile );
00240                 HRESULT ExecuteFile( [in] BSTR sFile );
00241         };
00242 
00243         [ uuid(1182FCD9-9F14-4e4a-BD05-432422B5BFAF) ]
00244         interface IDownloadPreviewPlugin : IUnknown
00245         {
00246                 HRESULT SetSite( [in] IDownloadPreviewSite* pSite );
00247                 HRESULT Preview( [in] HANDLE hFile, [in] BSTR sFile );
00248                 HRESULT Cancel();
00249         };
00250 
00251         //
00252         // MediaPlayer Plugin
00253         //
00254 
00255         interface IAudioVisPlugin;
00256 
00257         typedef enum
00258         {
00259                 smsNull, smsOpen, smsPaused, smsPlaying
00260         } MediaState;
00261 
00262         typedef enum
00263         {
00264                 smaDefault = 0,
00265                 smzDistort = -1, smzFill = 0, smzOne = 1, smzDouble = 2,
00266         } MediaZoom;
00267 
00268         [ uuid(59978299-C8AC-4818-83F4-C382BB611D5C), pointer_default(unique) ]
00269         interface IMediaPlayer : IUnknown
00270         {
00271                 HRESULT Create( [in] HWND hWnd );
00272                 HRESULT Destroy();
00273                 HRESULT Reposition( [in] RECT* prcWnd );
00274                 HRESULT SetLogoBitmap( [in] HBITMAP hLogo );
00275 
00276                 HRESULT GetVolume( [out] DOUBLE* pnVolume );
00277                 HRESULT SetVolume( [in] DOUBLE nVolume );
00278                 HRESULT GetZoom( [out] MediaZoom* pnZoom );
00279                 HRESULT SetZoom( [in] MediaZoom nZoom );
00280                 HRESULT GetAspect( [out] DOUBLE* pnAspect );
00281                 HRESULT SetAspect( [in] DOUBLE nAspect );
00282 
00283                 HRESULT Open( [in] BSTR sFilename );
00284                 HRESULT Close();
00285 
00286                 HRESULT Play();
00287                 HRESULT Pause();
00288                 HRESULT Stop();
00289                 HRESULT GetState( [out] MediaState* pnState );
00290 
00291                 HRESULT GetLength( [out] LONGLONG* pnLength );
00292                 HRESULT GetPosition( [out] LONGLONG* pnPosition );
00293                 HRESULT SetPosition( [in] LONGLONG nPosition );
00294                 HRESULT GetSpeed( [out] DOUBLE* pnSpeed );
00295                 HRESULT SetSpeed( [in] DOUBLE nSpeed );
00296 
00297                 HRESULT GetPlugin( [out] IAudioVisPlugin** ppPlugin );
00298                 HRESULT SetPlugin( [in] IAudioVisPlugin* pPlugin );
00299                 HRESULT GetPluginSize( [out] LONG* pnSize );
00300                 HRESULT SetPluginSize( [in] LONG nSize );
00301         };
00302 
00303         //
00304         // Audio Visualisation Plugin
00305         //
00306 
00307         typedef struct
00308         {
00309                 DWORD   nTime;
00310                 BYTE    nWaveform[2][512];
00311                 BYTE    nSpectrum[2][512];
00312         } SHAREAZAVISCHUNK;
00313 
00314         [ uuid(E788D125-4D41-4a35-A436-D1A1FD0C8EC9) ]
00315         interface IAudioVisPlugin : IUnknown
00316         {
00317                 HRESULT Configure();
00318                 HRESULT Create( [in] HWND hWnd );
00319                 HRESULT Destroy();
00320                 HRESULT Reposition( [in] RECT* prcWnd );
00321 
00322                 HRESULT OnTrackOpen( [in] BSTR sName, [in] DWORD nLength );
00323                 HRESULT OnTrackClose();
00324                 HRESULT OnPlayStart();
00325                 HRESULT OnPlayStop();
00326                 HRESULT OnChunk( [in] SHAREAZAVISCHUNK* pChunk );
00327         };
00328 
00329         [ uuid(71045028-F95C-4c03-AB09-6D906DBFC731) ]
00330         interface IWrappedPluginControl : IUnknown
00331         {
00332                 HRESULT Load( [in] BSTR sDLL, [in] LONG nIndex );
00333                 HRESULT Unload();
00334                 HRESULT Enumerate( [out] LPSAFEARRAY* ppArray );
00335         };
00336 
00337         //
00338         // Shareaza Object Model
00339         //
00340 
00341         interface IApplication;
00342         interface IUserInterface;
00343         interface ILibrary;
00344 
00345         [ uuid(8EBD0B6F-7BC4-44d1-BEC1-03E22DC2A587), dual, oleautomation ]
00346         interface IApplication : IDispatch
00347         {
00348                 [id(1),propget] HRESULT Application( [out,retval] IApplication** ppApplication );
00349                 [id(2),propget] HRESULT Version( [out,retval] BSTR* psVersion );
00350 
00351                 [id(10)] HRESULT CheckVersion( [in] BSTR sVersion );
00352                 [id(11)] HRESULT CreateXML( [out,retval] ISXMLElement** ppXML );
00353 
00354                 [id(20),propget] HRESULT UserInterface( [out,retval] IUserInterface** ppUserInterface );
00355                 [id(21),propget] HRESULT Library( [out,retval] ILibrary** ppLibrary );
00356         };
00357 
00358         //
00359         // User Interface Object Model
00360         //
00361 
00362         interface ISMenu;
00363         interface ISToolbar;
00364         interface ISToolbarItem;
00365         interface IGenericView;
00366 
00367         [ uuid(FCDE733E-DDA0-4849-AD83-D02B0F4D1DA3), dual, oleautomation ]
00368         interface IUserInterface : IDispatch
00369         {
00370                 [id(1),propget] HRESULT Application( [out,retval] IApplication** ppApplication );
00371                 [id(2),propget] HRESULT UserInterface( [out,retval] IUserInterface** ppUserInterface );
00372 
00373                 [id(10)] HRESULT NewWindow( [in] BSTR bsName, [in] IPluginWindowOwner* pOwner, [out,retval] IPluginWindow** ppWindow );
00374                 [id(11),propget] HRESULT MainWindowHwnd( [out,retval] HWND* phWnd );
00375                 [id(12),propget] HRESULT ActiveView( [out,retval] IGenericView** ppView );
00376 
00377                 [id(20)] HRESULT RegisterCommand( [in] BSTR bsName, [in] HICON hIcon, [out,retval] UINT* pnCommand );
00378                 [id(21)] HRESULT AddFromString( [in] BSTR sXML );
00379                 [id(22)] HRESULT AddFromResource( [in] HINSTANCE hInstance, [in] UINT nID );
00380                 [id(23)] HRESULT AddFromXML( [in] ISXMLElement* pXML );
00381 
00382                 [id(31)] HRESULT GetMenu( [in] BSTR bsName, [in] VARIANT_BOOL bCreate, [out,retval] ISMenu** ppMenu );
00383                 [id(32)] HRESULT GetToolbar( [in] BSTR bsName, [in] VARIANT_BOOL bCreate, [out,retval] ISToolbar** ppToolbar );
00384 
00385         };
00386 
00387         typedef enum
00388         {
00389                 mnuMenu, mnuSeparator, mnuCommand
00390         } SMenuType;
00391 
00392         [ uuid(D8C3C592-5AF4-44cf-8AA8-59038FE38812), dual, oleautomation ]
00393         interface ISMenu : IDispatch
00394         {
00395                 [id(1),propget] HRESULT Application( [out,retval] IApplication** ppApplication );
00396                 [id(2),propget] HRESULT UserInterface( [out,retval] IUserInterface** ppUserInterface );
00397 
00398                 [id(-4),propget,restricted] HRESULT _NewEnum( [out,retval] IUnknown** ppEnum );
00399                 [id(0),propget] HRESULT Item( [in] VARIANT vIndex, [out,retval] ISMenu** ppMenu );
00400                 [id(3),propget] HRESULT Count( [out,retval] LONG* pnCount );
00401 
00402                 [id(10),propget] HRESULT ItemType( [out,retval] SMenuType* pnType );
00403                 [id(11),propget] HRESULT CommandID( [out,retval] LONG* pnCommandID );
00404                 [id(11),propput] HRESULT CommandID( [in] LONG nCommandID );
00405                 [id(12),propget] HRESULT Text( [out,retval] BSTR* psText );
00406                 [id(12),propput] HRESULT Text( [in] BSTR sText );
00407                 [id(13),propget] HRESULT HotKey( [out,retval] BSTR* psText );
00408                 [id(13),propput] HRESULT HotKey( [in] BSTR sText );
00409 
00410                 [id(30)] HRESULT Remove();
00411                 [id(31)] HRESULT InsertSeparator( [in] LONG nPosition );
00412                 [id(32)] HRESULT InsertMenu( [in] LONG nPosition, [in] BSTR sText, [out,retval] ISMenu** ppMenu );
00413                 [id(33)] HRESULT InsertCommand( [in] LONG nPosition, [in] LONG nCommandID, [in] BSTR sText, [out,retval] ISMenu** ppMenu );
00414         };
00415 
00416         typedef enum
00417         {
00418                 tbSeparator, tbButton, tbControl
00419         } SToolbarType;
00420 
00421         [ uuid(E02F505E-9649-4eb1-AB3F-56FFDFF5B92C), dual, oleautomation ]
00422         interface ISToolbar : IDispatch
00423         {
00424                 [id(1),propget] HRESULT Application( [out,retval] IApplication** ppApplication );
00425                 [id(2),propget] HRESULT UserInterface( [out,retval] IUserInterface** ppUserInterface );
00426 
00427                 [id(-4),propget,restricted] HRESULT _NewEnum( [out,retval] IUnknown** ppEnum );
00428                 [id(0),propget] HRESULT Item( [in] VARIANT vIndex, [out,retval] ISToolbarItem** ppItem );
00429                 [id(3),propget] HRESULT Count( [out,retval] LONG* pnCount );
00430 
00431                 [id(4)] HRESULT InsertSeparator( [in] LONG nPosition );
00432                 [id(5)] HRESULT InsertButton( [in] LONG nPosition, [in] LONG nCommandID, [in] BSTR sText, [out,retval] ISToolbarItem** ppItem );
00433         };
00434 
00435         [ uuid(3A82A3A3-5560-4ece-B38A-D56E1E74642A), dual, oleautomation ]
00436         interface ISToolbarItem : IDispatch
00437         {
00438                 [id(1),propget] HRESULT Application( [out,retval] IApplication** ppApplication );
00439                 [id(2),propget] HRESULT UserInterface( [out,retval] IUserInterface** ppUserInterface );
00440                 [id(3),propget] HRESULT Toolbar( [out,retval] ISToolbar** ppToolbar );
00441 
00442                 [id(10),propget] HRESULT ItemType( [out,retval] SToolbarType* pnType );
00443                 [id(11),propget] HRESULT CommandID( [out,retval] LONG* pnCommandID );
00444                 [id(11),propput] HRESULT CommandID( [in] LONG nCommandID );
00445                 [id(12),propget] HRESULT Text( [out,retval] BSTR* psText );
00446                 [id(12),propput] HRESULT Text( [in] BSTR sText );
00447 
00448                 [id(20)] HRESULT Remove();
00449         };
00450 
00451         [ uuid(EBAD02A1-E1B0-4961-9415-83267B2A5010), dual, oleautomation ]
00452         interface IGenericView : IDispatch
00453         {
00454                 [id(1),propget] HRESULT Name( [out,retval] BSTR* psName );
00455                 [id(2),propget] HRESULT Unknown( [out,retval] IUnknown** ppUnknown );
00456                 [id(3),propget] HRESULT Param( [out,retval] LONG* pnParam );
00457 
00458                 [id(4),propget] HRESULT Count( [out,retval] LONG* pnCount );
00459                 [id(0),propget] HRESULT Item( [in] VARIANT vIndex, [out,retval] VARIANT* pvItem );
00460                 [id(-4),propget,restricted] HRESULT _NewEnum( [out,retval] IUnknown** ppEnum );
00461         };
00462 
00463         //
00464         // Library Object Model
00465         //
00466 
00467         interface ILibraryFile;
00468         interface ILibraryFiles;
00469         interface ILibraryFolder;
00470         interface ILibraryFolders;
00471 
00472         [ uuid(1735A63C-099B-414c-9B22-817C2FC5EC34), dual, oleautomation ]
00473         interface ILibrary : IDispatch
00474         {
00475                 [id(1),propget] HRESULT Application( [out,retval] IApplication** ppApplication );
00476                 [id(2),propget] HRESULT Library( [out,retval] ILibrary** ppLibrary );
00477 
00478                 [id(10),propget] HRESULT Folders( [out,retval] ILibraryFolders** ppFolders );
00479                 [id(11),propget] HRESULT Albums( [out,retval] IUnknown** ppAlbums );
00480                 [id(12),propget] HRESULT Files( [out,retval] ILibraryFiles** ppFiles );
00481 
00482                 [id(20)] HRESULT FindByName( [in] BSTR sName, [out,retval] ILibraryFile** ppFile );
00483                 [id(21)] HRESULT FindByPath( [in] BSTR sPath, [out,retval] ILibraryFile** ppFile );
00484                 [id(22)] HRESULT FindByURN( [in] BSTR sURN, [out,retval] ILibraryFile** ppFile );
00485                 [id(23)] HRESULT FindByIndex( [in] LONG nIndex, [out,retval] ILibraryFile** ppFile );
00486         };
00487 
00488         [ uuid(43DF8D22-6F85-4d0a-B072-1C8BF8A57073), dual, oleautomation ]
00489         interface ILibraryFolders : IDispatch
00490         {
00491                 [id(1),propget] HRESULT Application( [out,retval] IApplication** ppApplication );
00492                 [id(2),propget] HRESULT Library( [out,retval] ILibrary** ppLibrary );
00493 
00494                 [id(-4),propget,restricted] HRESULT _NewEnum( [out,retval] IUnknown** ppEnum );
00495                 [id(0),propget] HRESULT Item( [in] VARIANT vIndex, [out,retval] ILibraryFolder** ppFolder );
00496                 [id(3),propget] HRESULT Count( [out,retval] LONG* pnCount );
00497         };
00498 
00499         [ uuid(49346C06-DC33-4975-978E-E807F7E41EF9), dual, oleautomation ]
00500         interface ILibraryFiles : IDispatch
00501         {
00502                 [id(1),propget] HRESULT Application( [out,retval] IApplication** ppApplication );
00503                 [id(2),propget] HRESULT Library( [out,retval] ILibrary** ppLibrary );
00504 
00505                 [id(-4),propget,restricted] HRESULT _NewEnum( [out,retval] IUnknown** ppEnum );
00506                 [id(0),propget] HRESULT Item( [in] VARIANT vIndex, [out,retval] ILibraryFile** ppFile );
00507                 [id(3),propget] HRESULT Count( [out,retval] LONG* pnCount );
00508         };
00509 
00510         [ uuid(8A6BC680-3451-4a78-8A01-B7DFC1D9A148), dual, oleautomation ]
00511         interface ILibraryFolder : IDispatch
00512         {
00513                 [id(1),propget] HRESULT Application( [out,retval] IApplication** ppApplication );
00514                 [id(2),propget] HRESULT Library( [out,retval] ILibrary** ppLibrary );
00515 
00516                 [id(10),propget] HRESULT Parent( [out,retval] ILibraryFolder** ppFolder );
00517                 [id(11),propget] HRESULT Path( [out,retval] BSTR* psPath );
00518                 [id(12),propget] HRESULT Name( [out,retval] BSTR* psPath );
00519                 [id(13),propget] HRESULT Shared( [out,retval] STristate* pnValue );
00520                 [id(13),propput] HRESULT Shared( [in] STristate nValue );
00521                 [id(14),propget] HRESULT EffectiveShared( [out,retval] VARIANT_BOOL* pbValue );
00522 
00523                 [id(20),propget] HRESULT Folders( [out,retval] ILibraryFolders** ppFolders );
00524                 [id(21),propget] HRESULT Files( [out,retval] ILibraryFiles** ppFiles );
00525         };
00526 
00527         [ uuid(B663F7DE-E1C6-4fe6-92BD-D0549B7601E3), dual, oleautomation ]
00528         interface ILibraryFile : IDispatch
00529         {
00530                 [id(1),propget] HRESULT Application( [out,retval] IApplication** ppApplication );
00531                 [id(2),propget] HRESULT Library( [out,retval] ILibrary** ppLibrary );
00532 
00533                 [id(10),propget] HRESULT Folder( [out,retval] ILibraryFolder** ppFolder );
00534                 [id(11),propget] HRESULT Path( [out,retval] BSTR* psPath );
00535                 [id(12),propget] HRESULT Name( [out,retval] BSTR* psPath );
00536                 [id(13),propget] HRESULT Shared( [out,retval] STristate* pnValue );
00537                 [id(13),propput] HRESULT Shared( [in] STristate nValue );
00538                 [id(14),propget] HRESULT EffectiveShared( [out,retval] VARIANT_BOOL* pbValue );
00539 
00540                 [id(20),propget] HRESULT Size( [out,retval] LONG* pnSize );
00541                 [id(21),propget] HRESULT Index( [out,retval] LONG* pnIndex );
00542                 [id(22),propget] HRESULT URN( [in] BSTR sURN, [out,retval] BSTR* psURN );
00543                 [id(23),propget] HRESULT MetadataAuto( [out,retval] VARIANT_BOOL* pbValue );
00544                 [id(24),propget] HRESULT Metadata( [out,retval] ISXMLElement** ppXML );
00545                 [id(24),propput] HRESULT Metadata( [in] ISXMLElement* pXML );
00546 
00547                 [id(30)] HRESULT Execute();
00548                 [id(31)] HRESULT SmartExecute();
00549                 [id(32)] HRESULT Delete();
00550                 [id(33)] HRESULT Rename( [in] BSTR sNewName );
00551                 [id(34)] HRESULT Copy( [in] BSTR sNewPath );
00552                 [id(35)] HRESULT Move( [in] BSTR sNewPath );
00553         };
00554 
00555         //
00556         // Web Object Models
00557         //
00558 
00559         [ uuid(CF66956E-901F-44D0-B5C6-FC6A436A030D), dual, oleautomation ]
00560         interface ICollectionHtmlView : IDispatch
00561         {
00562                 [id(1),propget] HRESULT Application( [out,retval] IApplication** ppApplication );
00563 
00564                 [id(11)] HRESULT Detect( [in] BSTR sURN, [out,retval] BSTR* psState );
00565                 [id(12)] HRESULT Hover( [in] BSTR sURN );
00566                 [id(13)] HRESULT Open( [in] BSTR sURN, [out,retval] VARIANT_BOOL* pbResult );
00567                 [id(14)] HRESULT Enqueue( [in] BSTR sURN, [out,retval] VARIANT_BOOL* pbResult );
00568                 [id(15)] HRESULT Download( [in] BSTR sMagnet, [out,retval] VARIANT_BOOL* pbResult );
00569                 [id(16)] HRESULT DownloadAll();
00570                 [id(17),propget] HRESULT MissingCount( [out,retval] LONG* pnCount );
00571         }
00572 };

Generated on Thu Dec 15 10:39:48 2005 for Shareaza 2.2.1.0 by  doxygen 1.4.2