Skip to content

Commit e695d76

Browse files
committed
[SDK][SHELl32] Code review and adjustments
1 parent 0d29a66 commit e695d76

10 files changed

Lines changed: 78 additions & 697 deletions

File tree

dll/win32/shell32/CMakeLists.txt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,8 @@ PROJECT(SHELL)
33
add_subdirectory(shelldesktop)
44
add_subdirectory(shellmenu)
55
add_subdirectory(shellrecyclebin)
6+
spec2def(shell32.dll shell32.spec ADD_IMPORTLIB)
67

7-
if(DLL_EXPORT_VERSION GREATER_EQUAL 0x600)
8-
spec2def(shell32.dll shell32_vista.spec ADD_IMPORTLIB)
9-
else()
10-
spec2def(shell32.dll shell32.spec ADD_IMPORTLIB)
11-
endif()
128
remove_definitions(-D_WIN32_WINNT=0x502)
139
add_definitions(-D_WIN32_WINNT=0x600)
1410

dll/win32/shell32/CShellItemArray.cpp

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,35 @@ EXTERN_C HRESULT WINAPI SHCreateShellItem(
1414
* CShellItemArray
1515
*/
1616

17-
CShellItemArray::CShellItemArray() : m_pCIDA(NULL)
17+
CShellItemArray::CShellItemArray() : m_pHIDA(NULL)
1818
{
19-
m_Medium.tymed = TYMED_NULL;
2019
}
2120

2221
CShellItemArray::~CShellItemArray()
2322
{
24-
CDataObjectHIDA::DestroyCIDA(m_pCIDA, m_Medium);
23+
delete m_pHIDA;
2524
}
2625

2726
HRESULT
2827
CShellItemArray::Initialize(_In_ IDataObject *pdo)
2928
{
30-
return CDataObjectHIDA::CreateCIDA(pdo, &m_pCIDA, m_Medium);
29+
m_pHIDA = new CDataObjectHIDA(pdo);
30+
if (!m_pHIDA)
31+
return E_OUTOFMEMORY;
32+
33+
HRESULT hr = m_pHIDA->hr();
34+
if (FAILED(hr))
35+
{
36+
delete m_pHIDA;
37+
m_pHIDA = NULL;
38+
}
39+
return hr;
3140
}
3241

3342
UINT
3443
CShellItemArray::ItemCount() const
3544
{
36-
return m_pCIDA ? m_pCIDA->cidl : 0;
45+
return m_pHIDA ? (*m_pHIDA)->cidl : 0;
3746
}
3847

3948
STDMETHODIMP
@@ -83,12 +92,12 @@ CShellItemArray::GetItemAt(_In_ DWORD nIndex, _Out_ IShellItem **ppItem)
8392
if (!ppItem)
8493
return E_INVALIDARG;
8594
*ppItem = NULL;
86-
if (!m_pCIDA)
95+
if (!m_pHIDA)
8796
return E_UNEXPECTED;
8897
if (nIndex >= ItemCount())
8998
return E_FAIL;
90-
return SHCreateShellItem(HIDA_GetPIDLFolder(m_pCIDA), NULL,
91-
HIDA_GetPIDLItem(m_pCIDA, nIndex), ppItem);
99+
return SHCreateShellItem(HIDA_GetPIDLFolder(*m_pHIDA), NULL,
100+
HIDA_GetPIDLItem(*m_pHIDA, nIndex), ppItem);
92101
}
93102

94103
STDMETHODIMP

dll/win32/shell32/CShellItemArray.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@ class CShellItemArray :
77
public CComObjectRootEx<CComMultiThreadModelNoCS>,
88
public IShellItemArray
99
{
10-
CIDA *m_pCIDA;
11-
STGMEDIUM m_Medium;
10+
CDataObjectHIDA *m_pHIDA;
1211

1312
public:
1413
CShellItemArray();

dll/win32/shell32/CUserEventTimer.cpp

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell);
1313
* IUserEventTimerCallback implementation
1414
*/
1515

16-
HRESULT WINAPI CUserEventTimer::UserEventTimerProc(ULONG uUserEventTimerID, UINT uTimerElapse)
16+
STDMETHODIMP
17+
CUserEventTimer::UserEventTimerProc(ULONG uUserEventTimerID, UINT uTimerElapse)
1718
{
1819
UNIMPLEMENTED;
1920
return S_OK;
@@ -23,27 +24,31 @@ HRESULT WINAPI CUserEventTimer::UserEventTimerProc(ULONG uUserEventTimerID, UINT
2324
* IUserEventTimer implementation
2425
*/
2526

26-
HRESULT WINAPI CUserEventTimer::SetUserEventTimer(HWND hWnd, UINT uCallbackMsg, UINT uTimerElapse,
27-
IUserEventTimerCallback *pUserEventTimerCallback,
28-
ULONG *puUserEventTimerID)
27+
STDMETHODIMP
28+
CUserEventTimer::SetUserEventTimer(HWND hWnd, UINT uCallbackMsg, UINT uTimerElapse,
29+
IUserEventTimerCallback *pUserEventTimerCallback,
30+
ULONG *puUserEventTimerID)
2931
{
3032
UNIMPLEMENTED;
3133
return S_OK;
3234
}
3335

34-
HRESULT WINAPI CUserEventTimer::KillUserEventTimer(HWND hWnd, ULONG uUserEventTimerID)
36+
STDMETHODIMP
37+
CUserEventTimer::KillUserEventTimer(HWND hWnd, ULONG uUserEventTimerID)
3538
{
3639
UNIMPLEMENTED;
3740
return S_OK;
3841
}
3942

40-
HRESULT WINAPI CUserEventTimer::GetUserEventTimerElapsed(HWND hWnd, ULONG uUserEventTimerID, UINT *puTimerElapsed)
43+
STDMETHODIMP
44+
CUserEventTimer::GetUserEventTimerElapsed(HWND hWnd, ULONG uUserEventTimerID, UINT *puTimerElapsed)
4145
{
4246
UNIMPLEMENTED;
4347
return S_OK;
4448
}
4549

46-
HRESULT WINAPI CUserEventTimer::InitTimerTickInterval(UINT uTimerTickIntervalMs)
50+
STDMETHODIMP
51+
CUserEventTimer::InitTimerTickInterval(UINT uTimerTickIntervalMs)
4752
{
4853
UNIMPLEMENTED;
4954
return S_OK;

dll/win32/shell32/CUserEventTimer.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@ class CUserEventTimer :
1616
public:
1717

1818
/*** IUserEventTimerCallback methods ***/
19-
virtual HRESULT WINAPI UserEventTimerProc(ULONG uUserEventTimerID, UINT uTimerElapse);
19+
virtual STDMETHODIMP UserEventTimerProc(ULONG uUserEventTimerID, UINT uTimerElapse) override;
2020

2121
/*** IUserEventTimer methods ***/
22-
virtual HRESULT WINAPI SetUserEventTimer(HWND hWnd, UINT uCallbackMsg, UINT uTimerElapse,
22+
virtual STDMETHODIMP SetUserEventTimer(HWND hWnd, UINT uCallbackMsg, UINT uTimerElapse,
2323
IUserEventTimerCallback *pUserEventTimerCallback,
24-
ULONG *puUserEventTimerID);
25-
virtual HRESULT WINAPI KillUserEventTimer(HWND hWnd, ULONG uUserEventTimerID);
26-
virtual HRESULT WINAPI GetUserEventTimerElapsed(HWND hWnd, ULONG uUserEventTimerID, UINT *puTimerElapsed);
27-
virtual HRESULT WINAPI InitTimerTickInterval(UINT uTimerTickIntervalMs);
24+
ULONG *puUserEventTimerID) override;
25+
virtual STDMETHODIMP KillUserEventTimer(HWND hWnd, ULONG uUserEventTimerID) override;
26+
virtual STDMETHODIMP GetUserEventTimerElapsed(HWND hWnd, ULONG uUserEventTimerID, UINT *puTimerElapsed) override;
27+
virtual STDMETHODIMP InitTimerTickInterval(UINT uTimerTickIntervalMs) override;
2828

2929

3030
DECLARE_REGISTRY_RESOURCEID(IDR_USEREVENTTIMER)

0 commit comments

Comments
 (0)