Index: ui/base/dragdrop/os_exchange_data_provider_win.h |
diff --git a/ui/base/dragdrop/os_exchange_data_provider_win.h b/ui/base/dragdrop/os_exchange_data_provider_win.h |
index 760719fc2a80f1645b7fd7f5cada6b2ed8fe3805..e126e8d1f82687288beb31908c4a868ed7eb089b 100644 |
--- a/ui/base/dragdrop/os_exchange_data_provider_win.h |
+++ b/ui/base/dragdrop/os_exchange_data_provider_win.h |
@@ -10,6 +10,15 @@ |
#include <shlobj.h> |
#include <string> |
+// Win8 SDK compatibility, see http://goo.gl/fufvl for more information. |
+// "Note: This interface has been renamed IDataObjectAsyncCapability." |
+// If we're building on pre-8 we define it to its old name. It's documented as |
+// being binary compatible. |
+#ifndef __IDataObjectAsyncCapability_FWD_DEFINED__ |
+#define IDataObjectAsyncCapability IAsyncOperation |
+#define IID_IDataObjectAsyncCapability IID_IAsyncOperation |
+#endif |
+ |
#include "base/win/scoped_comptr.h" |
#include "ui/base/dragdrop/os_exchange_data.h" |
#include "ui/base/ui_export.h" |
@@ -18,7 +27,7 @@ namespace ui { |
class DataObjectImpl : public DownloadFileObserver, |
public IDataObject, |
- public IAsyncOperation { |
+ public IDataObjectAsyncCapability { |
public: |
class Observer { |
public: |
@@ -55,7 +64,7 @@ class DataObjectImpl : public DownloadFileObserver, |
HRESULT __stdcall DUnadvise(DWORD connection); |
HRESULT __stdcall EnumDAdvise(IEnumSTATDATA** enumerator); |
- // IAsyncOperation implementation: |
+ // IDataObjectAsyncCapability implementation: |
HRESULT __stdcall EndOperation( |
HRESULT result, IBindCtx* reserved, DWORD effects); |
HRESULT __stdcall GetAsyncMode(BOOL* is_op_async); |
@@ -138,7 +147,8 @@ class UI_EXPORT OSExchangeDataProviderWin : public OSExchangeData::Provider { |
static DataObjectImpl* GetDataObjectImpl(const OSExchangeData& data); |
static IDataObject* GetIDataObject(const OSExchangeData& data); |
- static IAsyncOperation* GetIAsyncOperation(const OSExchangeData& data); |
+ static IDataObjectAsyncCapability* GetIAsyncOperation( |
+ const OSExchangeData& data); |
explicit OSExchangeDataProviderWin(IDataObject* source); |
OSExchangeDataProviderWin(); |
@@ -146,7 +156,7 @@ class UI_EXPORT OSExchangeDataProviderWin : public OSExchangeData::Provider { |
virtual ~OSExchangeDataProviderWin(); |
IDataObject* data_object() const { return data_.get(); } |
- IAsyncOperation* async_operation() const { return data_.get(); } |
+ IDataObjectAsyncCapability* async_operation() const { return data_.get(); } |
// OSExchangeData::Provider methods. |
virtual void SetString(const string16& data); |