WavTgtFactory.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /******************************************************************************
  2. |* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  3. |* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
  4. |* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  5. |* PARTICULAR PURPOSE.
  6. |*
  7. |* Copyright 1995-2005 Nero AG. All Rights Reserved.
  8. |*-----------------------------------------------------------------------------
  9. |* PROJECT: Nero Plugin Manager Example
  10. |*
  11. |* FILE: WavTgtFactory.h
  12. |*
  13. |* PURPOSE: Declaration file for the wave target factory class.
  14. ******************************************************************************/
  15. #ifndef _WAV_TGT_FACTORY_
  16. # define _WAV_TGT_FACTORY_
  17. #if _MSC_VER > 1000
  18. # pragma once
  19. #endif // _MSC_VER > 1000
  20. // CStatus and CAggregatable
  21. #include "AudioBase.h"
  22. class CWavTgtFactory : public IIdentifiable,
  23. public CAggregatable,
  24. public IAudioComponent,
  25. IURLAudioTargetFactory,
  26. IExtEnum
  27. {
  28. // Construction/Destruction
  29. public:
  30. CWavTgtFactory()
  31. : CAggregatable (AGGFLAG_NODELETE)
  32. {}
  33. virtual ~CWavTgtFactory() {};
  34. // Operations
  35. public:
  36. virtual long GetRefCount();
  37. AGGREGATABLE_INTERFACE_MAP_BEGIN
  38. INTERFACE_ENTRY(IIdentifiable)
  39. INTERFACE_ENTRY(IAudioComponent)
  40. INTERFACE_ENTRY(IURLAudioTargetFactory)
  41. INTERFACE_ENTRY(IExtEnum)
  42. AGGREGATABLE_INTERFACE_MAP_END
  43. // IIdentifiable
  44. void GetID(GUID *pGUID);
  45. // IAudioComponent
  46. virtual const char* GetName();
  47. virtual EAudioComponentType GetType();
  48. virtual bool Init(IAudioPluginMgr* pMgr, IStatus** ppStatus);
  49. virtual bool Done();
  50. // IURLAudioTargetFactory
  51. virtual bool CreateURLAudioTarget(IUnknown** ppTgt,
  52. const SWavFormat& formatSrc,
  53. IStatus** ppStatus);
  54. virtual bool EditSettings(IUnknown** ppTgt, int iCount);
  55. // Application should first call this function to determine if this
  56. // factory can edit settings for items.
  57. virtual bool CanEditSettings();
  58. virtual EURLType GetSupportedURLTypes();
  59. // IExtEnum
  60. int GetCount();
  61. // The returned value can't be stored for later use.
  62. // The application must copy it.
  63. const char* GetExt(int iNum);
  64. };
  65. #endif _WAV_TGT_FACTORY