widget/windows/nsClipboard.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 #ifndef nsClipboard_h__
     7 #define nsClipboard_h__
     9 #include "nsBaseClipboard.h"
    10 #include "nsIURI.h"
    11 #include <windows.h>
    13 class nsITransferable;
    14 class nsIClipboardOwner;
    15 class nsIWidget;
    16 class nsIFile;
    17 struct IDataObject;
    19 /**
    20  * Native Win32 Clipboard wrapper
    21  */
    23 class nsClipboard : public nsBaseClipboard,
    24                     public nsIObserver
    25 {
    27 public:
    28   nsClipboard();
    29   virtual ~nsClipboard();
    31   NS_DECL_ISUPPORTS_INHERITED
    33   // nsIObserver
    34   NS_DECL_NSIOBSERVER
    36   // nsIClipboard
    37   NS_IMETHOD HasDataMatchingFlavors(const char** aFlavorList, uint32_t aLength,
    38                                     int32_t aWhichClipboard, bool *_retval); 
    39   NS_IMETHOD EmptyClipboard(int32_t aWhichClipboard);
    41   // Internal Native Routines
    42   static nsresult CreateNativeDataObject(nsITransferable * aTransferable, 
    43                                          IDataObject ** aDataObj,
    44                                          nsIURI       * uri);
    45   static nsresult SetupNativeDataObject(nsITransferable * aTransferable, 
    46                                         IDataObject * aDataObj);
    47   static nsresult GetDataFromDataObject(IDataObject     * aDataObject,
    48                                         UINT              anIndex,
    49                                         nsIWidget       * aWindow,
    50                                         nsITransferable * aTransferable);
    51   static nsresult GetNativeDataOffClipboard(nsIWidget * aWindow, UINT aIndex, UINT aFormat, void ** aData, uint32_t * aLen);
    52   static nsresult GetNativeDataOffClipboard(IDataObject * aDataObject, UINT aIndex, UINT aFormat, const char * aMIMEImageFormat, void ** aData, uint32_t * aLen);
    53   static nsresult GetGlobalData(HGLOBAL aHGBL, void ** aData, uint32_t * aLen);
    54   static UINT     GetFormat(const char* aMimeStr);
    56   static UINT     CF_HTML;
    58 protected:
    59   NS_IMETHOD SetNativeClipboardData ( int32_t aWhichClipboard );
    60   NS_IMETHOD GetNativeClipboardData ( nsITransferable * aTransferable, int32_t aWhichClipboard );
    62   static bool IsInternetShortcut ( const nsAString& inFileName ) ;
    63   static bool FindURLFromLocalFile ( IDataObject* inDataObject, UINT inIndex, void** outData, uint32_t* outDataLen ) ;
    64   static bool FindURLFromNativeURL ( IDataObject* inDataObject, UINT inIndex, void** outData, uint32_t* outDataLen ) ;
    65   static bool FindUnicodeFromPlainText ( IDataObject* inDataObject, UINT inIndex, void** outData, uint32_t* outDataLen ) ;
    66   static bool FindPlatformHTML ( IDataObject* inDataObject, UINT inIndex, void** outData, uint32_t* outDataLen );
    67   static void ResolveShortcut ( nsIFile* inFileName, nsACString& outURL ) ;
    69   nsIWidget         * mWindow;
    71 };
    73 #define SET_FORMATETC(fe, cf, td, asp, li, med)   \
    74    {\
    75    (fe).cfFormat=cf;\
    76    (fe).ptd=td;\
    77    (fe).dwAspect=asp;\
    78    (fe).lindex=li;\
    79    (fe).tymed=med;\
    80    }
    83 #endif // nsClipboard_h__

mercurial