Commit graph

89 commits

Author SHA1 Message Date
Vitaly Orekhov c30b284373
[ATL] Implement CSimpleStringT::Preallocate (#6574)
Used in `ATL::CStringW` and `ATL::CStringA`, for example:

```
ATL::CStringW cswItemText = "";
cswItemText.Preallocate(64);

SendDlgItemMessageW(pdis->CtlID, LB_GETTEXT, pdis->itemID, reinterpret_cast<LPARAM>(cswItemText.GetBuffer()));
cswItemText.ReleaseBuffer();
```

This public function is used to allocate memory for the string via private PrepareWrite, but it's missing somehow. Now it shouldn't be.
2024-03-05 11:42:27 +03:00
Hermès Bélusca-Maïto f49e213943
[CRT][MSVCRT] Implement _CrtDbgReport(W)V and redefine _CrtDbgReport(W) around those (#5678)
Also add the internal _VCrtDbgReportA and _VCrtDbgReportW functions listed in
https://learn.microsoft.com/en-us/cpp/c-runtime-library/internal-crt-globals-and-functions?view=msvc-170

CORE-11835, CORE-15517
2023-11-14 12:23:51 +01:00
Whindmar Saksit c6ec8d924e
[ATL] Added CComPtr.CoCreateInstance helper methods (#5905) 2023-11-13 11:03:05 +01:00
Katayama Hirofumi MZ 8669679499
[ATL][ATL_APITEST] Add some missing CRect methods (#5800)
- Strengthen "atltest.h".
- Strengthen atl_apitest:atltypes testcase.
- Implement some missing CRect methods.
2023-10-16 21:57:57 +09:00
Katayama Hirofumi MZ d955b9321b
[ATL] s/throw()/noexcept/ (#5799)
Mechanically replace throw() with noexcept.
2023-10-16 15:40:17 +09:00
Katayama Hirofumi MZ ebfec38cd1
[ATL][ATL_APITEST] Independent ReactOS ATL (RATL) support (#5657)
This is an attempt to make ReactOS ATL (RATL) independent.
https://github.com/katahiromz/RATL
CORE-19153
2023-09-20 12:02:33 +09:00
Katayama Hirofumi MZ 8d74bc4b46 [ATL] CImage: Follow-up to #5702 (5da3ed6)
Fix the return value of CImage::Detach. CORE-19008
2023-09-20 00:04:45 +09:00
Katayama Hirofumi MZ 5da3ed638b
[ATL] Fix CImage members (#5702)
- Delete m_ds and m_bm members from CImage.
- Add m_nWidth, m_nHeight, m_nPitch, m_nBPP,
  and m_pBits members.
CORE-19008
2023-09-19 22:19:03 +09:00
Katayama Hirofumi MZ 3fa90b539e
[ATL] Default value of dwInitParam is zero instead of NULL (#5703)
Fix warnings when dwInitParam was omitted at CDialogImpl::Create and/or CDialogImpl::DoModal.
2023-09-19 17:28:33 +09:00
Katayama Hirofumi MZ 6b69202016
[ATL] CImage: Simplify GetBits/GetPixelAddress (#5671)
CORE-19008
2023-09-09 20:20:22 +09:00
Katayama Hirofumi MZ 97b64c45c6
[ATL][ATL_APITEST] CImage testcase should cover all formats (#5653)
Strengthen CImage testcase and improve CImage class.
ROSTESTS-387, CORE-19008
2023-09-09 08:42:55 +09:00
Katayama Hirofumi MZ eb6561bbc7 [ATL] atlimage.h: Replace throw() with noexcept
throw() is deprecated in C++17. CORE-19008
2023-09-05 09:12:01 +09:00
Katayama Hirofumi MZ b68a3f329c
[ATL][ATL_APITEST] Implement CImageDC class (#5643)
- Use reference count for CImage::GetDC / CImage::ReleaseDC.
- Add CImageDC class.
- Delete modules/rostests/apitests/atl/CImage_WIP.txt.
CORE-19008
2023-09-05 09:03:32 +09:00
Katayama Hirofumi MZ a93352fdaf [ATL] atlimage.h: Rename some members
Based on Doxygen analysis.
- s/m_hbmOld/m_hOldBitmap/
- s/m_hbm/m_hBitmap/
- s/m_bHasAlphaCh/m_bHasAlphaChannel/
- s/m_bIsDIBSec/m_bIsDIBSection/
- s/m_rgbTransColor/m_clrTransparentColor/
CORE-19008
2023-09-02 13:22:32 +09:00
Katayama Hirofumi MZ 80153fc686
[ATL_APITEST][SDK] Fix failures of CImage testcase (#5567)
- Improve compatibility of CImage.
- Improve CImage testcase of atl_apitest.
- Improve CImage::BuildCodecFilterString.
CORE-19008
2023-08-18 20:34:33 +09:00
Katayama Hirofumi MZ 485c03ad03
[ATL] Make CImage thread-safe (#5553)
- Add CInitGDIPlus subclass in CImage.
- Lock the CInitGDIPlus data by using a critical section.
- Add CImage::InitGDIPlus and use it.
CORE-19008
2023-08-14 20:45:37 +09:00
Katayama Hirofumi MZ 70e05170cf
[MSPAINT][ATL] Delete deprecated functions (#5542)
- Rewrite CImageDx to reduce improper dependency with CImage.
- Check if the filename extension is supported before saving the files.
- Delete deprecated functions in CImage.
CORE-19094
2023-08-09 08:17:07 +09:00
Katayama Hirofumi MZ 36a35ee203
[ATL] CImage: Hack fix for getting filter string (#5528)
- Fix the crash on opening/saving file.
- To get the filename extension info from CODECs, we have to keep gdiplus.dll loaded.
- The perfect fix will take time.
CORE-19093, CORE-19094
2023-08-05 21:23:21 +09:00
Katayama Hirofumi MZ 50774f865c
[ATL] CImage: Respect CODEC info (#5408)
Add _getAllEncoders and _getAllDecoders helper functions and use them
in GetImporterFilterString, GetExporterFilterString, FileTypeFromExtension
and GetClsidFromFileType functions.
CORE-18867, CORE-19008
2023-07-31 07:22:38 +09:00
Katayama Hirofumi MZ 985680068c
[ATL] Overload const-return-versions of FindChar/FindString/FindOneOf (#5473)
Overload the const-return-versions of FindChar/FindCharReverse/FindString/FindOneOf.
Modify CStringT::Replace.
2023-07-30 07:59:01 +09:00
Katayama Hirofumi MZ 1191bcaf03
[ATL][ATL_APITEST] Add <atlconv.h> and atlconv testcase (#5449)
- Add <atlconv.h> header file.
- Add atlconv testcase to atl_apitest.exe.
CORE-16668
2023-07-20 07:54:11 +09:00
Katayama Hirofumi MZ 4ff55ad48e [ATL] atlimage.h: s/IsGuidEqual/::IsEqualGUID/
CORE-18867
2023-07-06 08:29:45 +09:00
Mark Jansen 507aae4c30
[ATL] Take _ATL_FREE_THREADED into account
When it is not defined, COM should not be initialize multithreaded
2023-04-27 16:29:21 +02:00
Mark Jansen 08d808cc44
[ATL] Add CAtlList::SwapElements 2023-04-26 22:48:29 +02:00
Mark Jansen d12880829f
[ATL] Add OBJECT_ENTRY_AUTO for simpler com object registration
Of course gcc needs a nasty hack to include the symbol.
CORE-18936
2023-04-22 21:23:55 +02:00
Mark Jansen 9c8580a1e0
[ATL] Add CString::AppendFormat 2023-04-17 18:09:34 +02:00
Katayama Hirofumi MZ 29e147beca
[MSPAINT][ATL] Encapsulation: mainWindow (#5178)
- Add DoCreate methods to CFullscreenWindow, CMiniatureWindow, and CMainWindow classes.
- Do encapsulation around mainWindow and _tWinMain.
- Add GetOpenFileName, GetSaveFileName, and ChooseColor helper methods to CMainWindow class.
- Move some code in WinMain into CMainWindow::OnCreate.
- Delay creation of CFullscreenWindow and CMiniatureWindow.
- Extend ATL CImage class as CImageDx in newly-created atlimagedx.h of mspaint.
CORE-18867
2023-03-28 22:31:26 +09:00
Mark Jansen 647f74d4ab
[ATL] Remove some code that doesn't exist in the native ATL 2023-02-20 19:32:59 +01:00
Ratin Gao 21a168e574
[ATL] CImage::Load(): Return E_FAIL without ATLASSERT on failure (#4993)
Application won't be interrupted by ATLASSERT when image load failure happens,
just like it was done in MS ATL.

CORE-18589
2023-01-22 20:38:16 +03:00
Timo Kreuzer 902cdbc63a [ATL] Remove an assert that doesn't exist in the native ATL
This fixes an ATL assert in shell32_winetest:assoc and shell32_winetest:shfldr_special
2023-01-04 10:32:28 +01:00
Mark Jansen a414c88dae
[ATL] Prohibit the use of AddRef/Release on objects inside CComPtr
This mimics what MS's CComPtr is doing:
https://learn.microsoft.com/en-us/cpp/atl/reference/ccomptrbase-class?view=msvc-170#operator_ptr
The reasoning behind this is that AddRef/Release is handled by the CComPtr,
so anyone calling that is most likely not using the CComPtr correct.
2022-10-02 00:38:23 +02:00
Jose Carlos Jesus e215a088f9
[ATL] Fix window position to fit in screen area (#4512)
Clicking "Edit compatibility modes" button in the "Compatibility" tab
opens a window centered on the parent window. If we move the parent
window to one of the screen edges and then click this button again,
the new window will appear off screen.

Adjust position of created window, so now it would be completely visible.

CORE-17089

Reviewed-by: Mark Jansen <mark.jansen@reactos.org>
Reviewed-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2022-09-13 18:00:45 +03:00
Katayama Hirofumi MZ dd5a634611
[ATL] Add atlsync.h (#4382)
- Add atlsync.h and implement CCriticalSection, CEvent, CMutex and CSemaphore classes.
CORE-13950
2022-03-07 11:02:42 +09:00
Katayama Hirofumi MZ 7014cf04b1
[ATL][MSPAINT] Add ATLTRACE and fix assertion failures (#4299)
- Implement ATLTRACE and AtlTrace in atlbase.h.
- Fix assertion failures in mspaint.
CORE-17969, CORE-18012
2022-01-23 00:59:12 +09:00
Hermès Bélusca-Maïto 14dbd66d88
[SDK:ATL] Implement GetDlgItemText(BSTR&), GetTopLevelParent(), GetWindowText(CSimpleString&). (#4207)
And add SAL annotations to the Get***Text family of functions.
2021-12-31 02:28:10 +01:00
Hermès Bélusca-Maïto e60a4f00b5
[ATL] atlwin.h: Formatting, and add a comment in IsParentDialog(). 2021-12-31 02:26:53 +01:00
Mark Jansen e3402aca65
[ATL][ATL_APITEST] Add test for CPath +small fixes 2021-10-30 22:47:57 +02:00
He Yang 42e111f26b
[ATL] Close m_hKey in CRegKey destructor and when attaching to a new key (#3764) 2021-06-24 23:50:01 +02:00
Victor Perevertkin 34593d933b
[FORMATTING][NTOS][HAL][DRIVERS][SDK] Fix trailing spaces 2021-06-11 15:33:08 +03:00
Mark Jansen 5ea3814a22 [ATL] Implement CString 'operator !=' 2021-06-05 23:28:38 +02:00
Jérôme Gardou e470b58376 [REACTOS] Explicitly link against pseh & include pseh headers in a few places 2021-04-28 13:10:23 +02:00
Serge Gautherie 49639c7759
[ATL] CWindowImplBaseT::WindowProc(): Narrow 2 ATLASSERT() down (#3529)
Addendum to e076e05. CORE-17505
2021-03-25 19:51:29 +09:00
Katayama Hirofumi MZ e076e0576f [ATL] Add NULL-check in CWindowImplBaseT::WindowProc assertions
CORE-17505
2021-03-11 21:20:40 +09:00
Katayama Hirofumi MZ 9259ded8ae
[ATL][SHELL32][EXPLORER] Disable ATLASSERT (#3527)
We are not ready for enabling ATLASSERT. Enabling ATL assertions takes time to realize. CORE-17505
- Disable ATLASSERT by undefining _DEBUG.
- Revert currently non-fixable codes.
2021-03-11 20:26:45 +09:00
Katayama Hirofumi MZ 4f83032a12 [ATL] Split CWindowImplBaseT::WindowProc asserion
CORE-9281
2021-03-11 17:18:43 +09:00
Serge Gautherie 0975c5ef40
[ATL] CMakeLists.txt: Use a bare endif() (#3523)
Addendum to 98203ce.
2021-03-11 08:38:04 +09:00
Katayama Hirofumi MZ 98203cea23
[CMAKE] Define _DEBUG for better ATL debugging (Retry) (#3519)
CORE-17505
2021-03-10 22:59:13 +09:00
Katayama Hirofumi MZ e24d3cc952
[SDK][ATL] Fix CWindow::GetWindowText method of BSTR (#3498)
- Fix generic text mapping for GetWindowText and GetWindowTextLength functions.
- Fix the position.
- Fix the length.
- Fail elegantly if necessary.

CORE-9281
2021-03-02 17:50:00 +09:00
Katayama Hirofumi MZ ef3e7a3717
[SDK][ATL] Implement UnsubclassWindow methods (#3492)
I want UnsubclassWindow methods.
- Implement CWindowImpl::UnsubclassWindow method.
- Implement CContainedWindowT::UnsubclassWindow method.
- Add SubclassWindow testcase to atl_apitest test program.
- Fix generic text mapping of <atlwin.h>.
CORE-9281
2021-02-28 12:45:16 +09:00
Jérôme Gardou b0abd14b03 [ATL] Declare pointer as return type for functions returning pointers 2020-11-16 16:58:10 +01:00