text: 
  
  //+----------------------------------------------------------------------------
  //
  //  Copyright (C) Microsoft Corporation, 2008
  //
  //  Description:
  //      ISilverlightViewer and IRenderTargetBitmap interface definitions
  //
  //-----------------------------------------------------------------------------
  struct XRECT
  {
      int X;
      int Y;
      int Width;
      int Height;
  };
  
  //------------------------------------------------------------------------
  //
  //  Interface:  IRenderTargetBitmap
  //
  //  Synopsis:
  //      Interface for drawing a subtree to a surface pointer
  //
  //------------------------------------------------------------------------
  struct IRenderTargetBitmap
  {
      //
      // Ref counting
      //
  
      virtual  unsigned int __stdcall AddRef() = 0;
      virtual  unsigned int __stdcall Release() = 0;
  
      //
      // Render call - returns the dirty rectangle
      //
  
      virtual  HRESULT __stdcall Render(
          __in void *pElement,
          __out XRECT *prcDirtyRect
          ) = 0;
  };
  
  
  //------------------------------------------------------------------------
  //
  //  Interface:  ISilverlightViewer
  //
  //  Synopsis:
  //      The interface that allows drawing the Silverlight content 
  //      and feeding input to the Silverlight control.
  //
  //------------------------------------------------------------------------
  struct ISilverlightViewer 
  {
      //
      // Ref counting
      //
  
      virtual unsigned int __stdcall AddRef() = 0;
      virtual unsigned int __stdcall Release () = 0;
  
      virtual void    __stdcall SuppressBrowserEvents(__in int bSuppress) = 0;
  
      //
      // Create a IRenderTargetBitmap
      //
  
      virtual  unsigned int __stdcall CreateRenderTargetBitmap(
          __in unsigned int uBackground,
          __in int nOffsetX,
          __in int nOffsetY,
          __in unsigned int nWidth,
          __in unsigned int nHeight,
          __in void *pvBits,
          __out IRenderTargetBitmap **ppIRenderTargetBitmap
          )= 0;
  
  
      virtual  HRESULT __stdcall ProcessInput(
          __in unsigned int msg,
          __in unsigned int wParam,
          __in unsigned int lParam,
          __in void* curEvent,
          __in int x,
          __in int y,
          __out unsigned int *fHandled
      )= 0;
  
  
  
  };
  
  //------------------------------------------------------------------------
  //
  //  Interface:  ISilverlightViewerProvider
  //
  //  Synopsis:
  //      Gets the ISilverlightViewer interface
  //
  //------------------------------------------------------------------------
  struct __declspec(uuid("ed114498-ed0c-46c9-8609-e480a7e8b085"))
  ISilverlightViewerProvider : public IUnknown
  {
      //
      // Get the ISilverlightViewer interface
      //
  
      STDMETHOD(GetSilverlightViewer)(
          __out ISilverlightViewer **ppSilverlightViewer
          ) = 0;
  };
  