Skip to content

Commit 7662c99

Browse files
Colin Robertsonmikeblome
authored andcommitted
Fix --brokenlink-- and other problem links (MicrosoftDocs#564)
* Fix conveniently labeled broken links * Fix some SDK links * REmove links to non-existent topic * Fix more janky links in CRT
1 parent d527463 commit 7662c99

29 files changed

+29
-49
lines changed

docs/atl-mfc-shared/atl-mfc-shared-classes.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,5 @@ These utility classes can be used in any native C++ project without requiring an
3131
[Microsoft Foundation Class Library (MFC) Reference](../mfc/mfc-desktop-applications.md)
3232
Provides reference material for the MFC Library, a set of classes in that constitute an application framework, which is the framework of an application written for the Windows API.
3333

34-
[Visual C++ Libraries](http://msdn.microsoft.com/en-us/fec23c40-10c0-4857-9cdc-33a3b99b30ae)
35-
Provides links to the various libraries provided with Visual C++, including ATL, MFC, OLE DB Templates, the C run-time library, and the C++ Standard Library.
36-
3734
[Debugging](/visualstudio/debugger/debugging-in-visual-studio)
3835
Provides links to using the Visual Studio debugger to correct logic errors in your application or stored procedures.
39-

docs/atl/atl-com-desktop-components.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,3 @@ The ATL Reference documents the Active Template Library (ATL), a set of template
5959

6060
[OLE DB Templates](../data/oledb/ole-db-templates.md)
6161
Provides reference material for the OLE DB consumer and provider templates, a set of template classes that implement many commonly used OLE DB interfaces.
62-
63-
[Visual C++ Libraries](http://msdn.microsoft.com/en-us/fec23c40-10c0-4857-9cdc-33a3b99b30ae)
64-
Provides links to the various libraries provided with Visual C++, including ATL, MFC, OLE DB Templates, the C run-time library, and the C++ Standard Library.
65-

docs/c-runtime-library/c-run-time-library-reference.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,5 @@ The Microsoft run-time library provides routines for programming for the Microso
5454
[DLLs and Visual C++ run-time library behavior](../build/run-time-library-behavior.md)
5555
Discusses the entry point and startup code used for a DLL.
5656

57-
[Visual C++ Libraries](http://msdn.microsoft.com/en-us/fec23c40-10c0-4857-9cdc-33a3b99b30ae)
58-
Provides links to the various libraries provided with Visual C++, including ATL, MFC, OLE DB Templates, the C run-time library, and the C++ Standard Library.
59-
6057
[Debugging](/visualstudio/debugger/debugging-in-visual-studio)
6158
Provides links to using the Visual Studio debugger to correct logic errors in your application or stored procedures.
62-
63-
## See Also
64-
[Visual C++ Libraries Reference](http://msdn.microsoft.com/en-us/fec23c40-10c0-4857-9cdc-33a3b99b30ae)

docs/c-runtime-library/compatibility.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ The Universal C Run-Time Library (UCRT) supports most of the C standard library
2626

2727
Certain functions in the standard C library have a history of unsafe usage, because of misused parameters and unchecked buffers. These functions are often the source of security issues in code. Microsoft created a set of safer versions of these functions that verify parameter usage and invoke the invalid parameter handler when an issue is detected at runtime. By default, the Visual C++ compiler issues a deprecation warning when a function is used that has a safer variant available. When you compile your code as C++ , you can define `_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES` as 1 to eliminate most warnings. This uses template overloads to call the safer variants while maintaining portable source code. To suppress the warning, define `_CRT_SECURE_NO_WARNINGS` before including any headers in code that uses these functions. For more information, see [Security Features in the CRT](../c-runtime-library/security-features-in-the-crt.md).
2828

29-
Except as noted within the documentation for specific functions, the UCRT is compatible with the Windows API. Certain functions are not supported in Windows 8 Store apps or in Universal Windows apps on Windows 10. These functions are listed in [CRT functions not supported with /ZW](http://msdn.microsoft.com/library/windows/apps/jj606124.aspx), which enumerates the functions not supported by the [Windows Runtime](http://msdn.microsoft.com/en-us/9a1a18b8-9802-4ec5-b9de-0d2dfdf414e9).
29+
Except as noted within the documentation for specific functions, the UCRT is compatible with the Windows API. Certain functions are not supported in Windows 8 Store apps or in Universal Windows Platform (UWP) apps on Windows 10. These functions are listed in [CRT functions not supported in Universal Windows Platform apps](../cppcx/crt-functions-not-supported-in-universal-windows-platform-apps.md), which enumerates the functions not supported by the Windows Runtime and [UWP](/uwp).
3030

3131
## Related Articles
3232

docs/c-runtime-library/reference/crtcheckmemory.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ _ASSERTE( _CrtCheckMemory( ) );
5858
Debug versions of [C run-time libraries](../../c-runtime-library/crt-library-features.md) only.
5959

6060
## Example
61-
For a sample of how to use `_CrtCheckMemory`, see [crt_dbg1](http://msdn.microsoft.com/en-us/17b4b20c-e849-48f5-8eb5-dca6509cbaf9).
61+
For a sample of how to use `_CrtCheckMemory`, see [crt_dbg1](https://github.com/Microsoft/VCSamples/tree/master/VC2010Samples/crt/crt_dbg1).
6262

6363
## See Also
6464
[Debug Routines](../../c-runtime-library/debug-routines.md)

docs/c-runtime-library/reference/crtdbgreport-crtdbgreportw.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ int main(int argc, char *argv[]) {
114114
}
115115
```
116116

117-
See [crt_dbg2](http://msdn.microsoft.com/en-us/21e1346a-6a17-4f57-b275-c76813089167) for an example of how to change the report function.
117+
See [crt_dbg2](https://github.com/Microsoft/VCSamples/tree/master/VC2010Samples/crt/crt_dbg2) for an example of how to change the report function.
118118

119119
## See Also
120120
[Debug Routines](../../c-runtime-library/debug-routines.md)

docs/c-runtime-library/reference/crtdumpmemoryleaks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ int _CrtDumpMemoryLeaks( void );
5656
Debug versions of [C run-time libraries](../../c-runtime-library/crt-library-features.md) only.
5757

5858
## Example
59-
For a sample of how to use `_CrtDumpMemoryLeaks`, see [crt_dbg1](http://msdn.microsoft.com/en-us/17b4b20c-e849-48f5-8eb5-dca6509cbaf9).
59+
For a sample of how to use `_CrtDumpMemoryLeaks`, see [crt_dbg1](https://github.com/Microsoft/VCSamples/tree/master/VC2010Samples/crt/crt_dbg1).
6060

6161
## See Also
6262
[Debug Routines](../../c-runtime-library/debug-routines.md)

docs/c-runtime-library/reference/crtgetreporthook.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ _CRT_REPORT_HOOK _CrtGetReportHook( void );
4949
Debug versions of [C run-time libraries](../../c-runtime-library/crt-library-features.md) only.
5050

5151
## Example
52-
For a sample of how to use `_CrtSetReportHook`, see [report](http://msdn.microsoft.com/en-us/f6e08c30-6bd9-459a-830a-56deec0d2051).
52+
For a sample of how to use `_CrtSetReportHook`, see [report](https://github.com/Microsoft/VCSamples/tree/master/VC2010Samples/crt/report).
5353

5454
## See Also
5555
[Debug Routines](../../c-runtime-library/debug-routines.md)

docs/c-runtime-library/reference/crtmemdumpallobjectssince.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ Dumps information about objects in the heap from the start of program execution
5757
Debug versions of [C run-time libraries](../../c-runtime-library/crt-library-features.md) only.
5858

5959
## Example
60-
For a sample of how to use `_CrtMemDumpAllObjectsSince`, see [crt_dbg2](http://msdn.microsoft.com/en-us/21e1346a-6a17-4f57-b275-c76813089167).
60+
For a sample of how to use `_CrtMemDumpAllObjectsSince`, see [crt_dbg2](https://github.com/Microsoft/VCSamples/tree/master/VC2010Samples/crt/crt_dbg2).
6161

6262
## See Also
6363
[Debug Routines](../../c-runtime-library/debug-routines.md)

docs/c-runtime-library/reference/crtsetallochook.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ lineNumber);
7676
Debug versions of [C run-time libraries](../../c-runtime-library/crt-library-features.md) only.
7777

7878
## Example
79-
For a sample of how to use `_CrtSetAllocHook`, see [crt_dbg2](http://msdn.microsoft.com/en-us/21e1346a-6a17-4f57-b275-c76813089167).
79+
For a sample of how to use `_CrtSetAllocHook`, see [crt_dbg2](https://github.com/Microsoft/VCSamples/tree/master/VC2010Samples/crt/crt_dbg2).
8080

8181
## See Also
8282
[Debug Routines](../../c-runtime-library/debug-routines.md)

docs/c-runtime-library/reference/expm1-expm1f-expm1l.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,5 +63,5 @@ long double expm1l(
6363

6464
## See Also
6565
[Floating-Point Support](../../c-runtime-library/floating-point-support.md)
66-
[exp2, exp2f, exp2l](http://msdn.microsoft.com/en-us/a7974629-be1e-4196-a562-6624a0732003)
66+
[exp2, exp2f, exp2l](exp2-exp2f-exp2l.md)
6767
[pow, powf, powl](../../c-runtime-library/reference/pow-powf-powl.md)

docs/c-runtime-library/reference/free-dbg.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ void _free_dbg(
5757
For more compatibility information, see [Compatibility](../../c-runtime-library/compatibility.md) in the Introduction.
5858

5959
## Example
60-
For a sample of how to use `_free_dbg`, see [crt_dbg2](http://msdn.microsoft.com/en-us/21e1346a-6a17-4f57-b275-c76813089167).
60+
For a sample of how to use `_free_dbg`, see [crt_dbg2](https://github.com/Microsoft/VCSamples/tree/master/VC2010Samples/crt/crt_dbg2).
6161

6262
## See Also
6363
[Debug Routines](../../c-runtime-library/debug-routines.md)

docs/c-runtime-library/reference/lround-lroundf-lroundl-llround-llroundf-llroundl.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ lroundl(-2.500000) is -4
121121
[ceil, ceilf, ceill](../../c-runtime-library/reference/ceil-ceilf-ceill.md)
122122
[floor, floorf, floorl](../../c-runtime-library/reference/floor-floorf-floorl.md)
123123
[fmod, fmodf](../../c-runtime-library/reference/fmod-fmodf.md)
124-
[lrint, lrintf, lrintl, llrint, llrintf, llrintl](http://msdn.microsoft.com/en-us/312fd869-a9c0-4107-bb23-ab8299d04385)
124+
[lrint, lrintf, lrintl, llrint, llrintf, llrintl](lrint-lrintf-lrintl-llrint-llrintf-llrintl.md)
125125
[round, roundf, roundl](../../c-runtime-library/reference/round-roundf-roundl.md)
126-
[nearbyint, nearbyintf, nearbyintl](http://msdn.microsoft.com/en-us/15111e73-331d-41d1-81b7-3e10df894848)
126+
[nearbyint, nearbyintf, nearbyintl](nearbyint-nearbyintf-nearbyintl1.md)
127127
[rint, rintf, rintl](../../c-runtime-library/reference/rint-rintf-rintl.md)

docs/c-runtime-library/reference/malloc-dbg.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ void *_malloc_dbg(
7373
Debug versions of [C run-time libraries](../../c-runtime-library/crt-library-features.md) only.
7474

7575
## Example
76-
For a sample of how to use `_malloc_dbg`, see [crt_dbg1](http://msdn.microsoft.com/en-us/17b4b20c-e849-48f5-8eb5-dca6509cbaf9).
76+
For a sample of how to use `_malloc_dbg`, see [crt_dbg1](https://github.com/Microsoft/VCSamples/tree/master/VC2010Samples/crt/crt_dbg1).
7777

7878
## See Also
7979
[Debug Routines](../../c-runtime-library/debug-routines.md)

docs/c-runtime-library/reference/nearbyint-nearbyintf-nearbyintl1.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: "nearbyint, nearbyintf, nearbyintl1 | Microsoft Docs"
2+
title: "nearbyint, nearbyintf, nearbyintl | Microsoft Docs"
33
ms.custom: ""
44
ms.date: "11/04/2016"
55
ms.reviewer: ""

docs/c-runtime-library/reference/rint-rintf-rintl.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ rintl(-2.500000) is -3
9898
[ceil, ceilf, ceill](../../c-runtime-library/reference/ceil-ceilf-ceill.md)
9999
[floor, floorf, floorl](../../c-runtime-library/reference/floor-floorf-floorl.md)
100100
[fmod, fmodf](../../c-runtime-library/reference/fmod-fmodf.md)
101-
[lrint, lrintf, lrintl, llrint, llrintf, llrintl](http://msdn.microsoft.com/en-us/312fd869-a9c0-4107-bb23-ab8299d04385)
101+
[lrint, lrintf, lrintl, llrint, llrintf, llrintl](lrint-lrintf-lrintl-llrint-llrintf-llrintl.md)
102102
[lround, lroundf, lroundl, llround, llroundf, llroundl](../../c-runtime-library/reference/lround-lroundf-lroundl-llround-llroundf-llroundl.md)
103-
[nearbyint, nearbyintf, nearbyintl](http://msdn.microsoft.com/en-us/15111e73-331d-41d1-81b7-3e10df894848)
103+
[nearbyint, nearbyintf, nearbyintl](nearbyint-nearbyintf-nearbyintl1.md)
104104
[rint](../../c-runtime-library/reference/rint-rintf-rintl.md)

docs/c-runtime-library/reference/round-roundf-roundl.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ roundl(-2.500000) is -3
106106
[ceil, ceilf, ceill](../../c-runtime-library/reference/ceil-ceilf-ceill.md)
107107
[floor, floorf, floorl](../../c-runtime-library/reference/floor-floorf-floorl.md)
108108
[fmod, fmodf](../../c-runtime-library/reference/fmod-fmodf.md)
109-
[lrint, lrintf, lrintl, llrint, llrintf, llrintl](http://msdn.microsoft.com/en-us/312fd869-a9c0-4107-bb23-ab8299d04385)
109+
[lrint, lrintf, lrintl, llrint, llrintf, llrintl](lrint-lrintf-lrintl-llrint-llrintf-llrintl.md)
110110
[lround, lroundf, lroundl, llround, llroundf, llroundl](../../c-runtime-library/reference/lround-lroundf-lroundl-llround-llroundf-llroundl.md)
111-
[nearbyint, nearbyintf, nearbyintl](http://msdn.microsoft.com/en-us/15111e73-331d-41d1-81b7-3e10df894848)
111+
[nearbyint, nearbyintf, nearbyintl](nearbyint-nearbyintf-nearbyintl1.md)
112112
[rint, rintf, rintl](../../c-runtime-library/reference/rint-rintf-rintl.md)

docs/c-runtime-library/reference/set-sse2-enable.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ manager: "ghogen"
2121
ms.workload: ["cplusplus"]
2222
---
2323
# _set_SSE2_enable
24-
Enables or disables the use of [Streaming SIMD Extensions 2](http://msdn.microsoft.com/en-us/f98440eb-73a9-4f96-b203-ac41bb6701ea) (SSE2) instructions in CRT math routines. (This function is not available on x64 architectures because SSE2 is enabled by default.)
24+
Enables or disables the use of Streaming SIMD Extensions 2 (SSE2) instructions in CRT math routines. (This function is not available on x64 architectures because SSE2 is enabled by default.)
2525

2626
## Syntax
2727

docs/c-runtime-library/security-features-in-the-crt.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ strcpy(szBuf, "test"); // warning: deprecated
4040

4141
For those deprecated functions without secure template overloads, you should definitely consider manually updating your code to use the secure versions.
4242

43-
Another source of deprecation warnings, unrelated to security, is the POSIX functions. Replace POSIX function names with their standard equivalents (for example, change [access](../c-runtime-library/reference/access-crt.md) to [_access](../c-runtime-library/reference/access-waccess.md)), or disable POSIX-related deprecation warnings by defining `_CRT_NONSTDC_NO_WARNINGS`. For more information, see [Deprecated CRT Functions](http://msdn.microsoft.com/en-us/7e259932-c6c8-4c1a-9637-639e591681a5).
43+
Another source of deprecation warnings, unrelated to security, is the POSIX functions. Replace POSIX function names with their standard equivalents (for example, change [access](../c-runtime-library/reference/access-crt.md) to [_access](../c-runtime-library/reference/access-waccess.md)), or disable POSIX-related deprecation warnings by defining `_CRT_NONSTDC_NO_WARNINGS`. For more information, see [Compatibility](compatibility.md).
4444

4545
## Additional Security Features
4646
Some of the security features include the following:

docs/data/oledb/ole-db-templates.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,5 @@ The OLE DB templates make OLE DB data access easier. Visual C++ provides templat
5858
[Active Template Library (ATL) Reference](../../atl/atl-com-desktop-components.md)
5959
Provides reference material for the ATL Library, a set of template-based C++ classes that simplify the programming of COM objects.
6060

61-
[Visual C++ Libraries](http://msdn.microsoft.com/en-us/fec23c40-10c0-4857-9cdc-33a3b99b30ae)
62-
Provides links to the various libraries provided with Visual C++, including ATL, MFC, OLE DB Templates, the C run-time library, and the C++ Standard Library.
63-
6461
[Debugging](/visualstudio/debugger/debugging-in-visual-studio)
6562
Provides links to using the Visual Studio debugger to correct logic errors in your application or stored procedures.

docs/mfc/mfc-technical-notes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@ A technical note is a document written for programmers by programmers.
2929
- [Technical Notes By Category](../mfc/technical-notes-by-category.md)
3030

3131
## See Also
32-
[Visual C++ Libraries Reference](http://msdn.microsoft.com/en-us/fec23c40-10c0-4857-9cdc-33a3b99b30ae)
32+
3333
[MFC Desktop Applications](../mfc/mfc-desktop-applications.md)
3434

docs/mfc/reference/cmfcdragframeimpl-class.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class CMFCDragFrameImpl
3030
## Remarks
3131
An object of this class is embedded in each [CPane Class](../../mfc/reference/cpane-class.md) object. Thus, each pane that uses the `CanFloat` method displays a drag rectangle when the user drags it.
3232

33-
You can control the thickness of the drag rectangle by using [AFX_GLOBAL_DATA::m_nDragFrameThicknessFloat]--brokenlink--(afx-global-data-structure.md#m_ndragframethicknessfloat) and [AFX_GLOBAL_DATA::m_nDragFrameThicknessDock](afx-global-data-structure.md#m_ndragframethicknessdock).
33+
You can control the thickness of the drag rectangle by using [AFX_GLOBAL_DATA::m_nDragFrameThicknessFloat](afx-global-data-structure.md#m_ndragframethicknessfloat) and [AFX_GLOBAL_DATA::m_nDragFrameThicknessDock](afx-global-data-structure.md#m_ndragframethicknessdock).
3434

3535
## Inheritance Hierarchy
3636
[CMFCDragFrameImpl](../../mfc/reference/cmfcdragframeimpl-class.md)

docs/mfc/reference/cmousemanager-class.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ void SetCommandForDblClk(
218218
The command identifier.
219219

220220
### Remarks
221-
In order to associate a custom command with a view, you must first register the view by using [CMouseManager::AddView](#addview). The `AddView` method requires a view identifier as an input parameter. Once you register a view, you can call `CMouseManager::SetCommandForDblClk` with the same view identifier input parameter that you supplied to `AddView`. Thereafter, when the user double-clicks the mouse in the registered view, the application will execute the command indicated by `uiCmd.` To support the custom mouse behavior, you will also need to customize the view registered with the mouse manager. For more information about custom mouse behavior, see [Keyboard and Mouse Customization]--brokenlink--(../mouse-and-keyboard-customization.md).
221+
In order to associate a custom command with a view, you must first register the view by using [CMouseManager::AddView](#addview). The `AddView` method requires a view identifier as an input parameter. Once you register a view, you can call `CMouseManager::SetCommandForDblClk` with the same view identifier input parameter that you supplied to `AddView`. Thereafter, when the user double-clicks the mouse in the registered view, the application will execute the command indicated by `uiCmd.` To support the custom mouse behavior, you will also need to customize the view registered with the mouse manager. For more information about custom mouse behavior, see [Keyboard and Mouse Customization](../keyboard-and-mouse-customization.md).
222222

223223
If `uiCmd` is set to 0, the specified view is no longer associated with a command.
224224

docs/mfc/special-cwinapp-services.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ Besides running the message loop and giving you an opportunity to initialize the
2929

3030
This automatic registration support in `CWinApp` eliminates the need to ship a .reg file with your application or to do special installation work.
3131

32-
If you want to initialize GDI+ for your application (by calling [GdiplusStartup]--brokenlink--(_gdiplus_FUNC_GdiplusStartup_token_input_output_) in your [InitInstance](../mfc/reference/cwinapp-class.md#initinstance) function), you have to suppress the GDI+ background thread.
32+
If you want to initialize GDI+ for your application (by calling [GdiplusStartup](https://msdn.microsoft.com/library/ms534077) in your [InitInstance](../mfc/reference/cwinapp-class.md#initinstance) function), you have to suppress the GDI+ background thread.
3333

34-
You can do this by setting the **SuppressBackgroundThread** member of the [GdiplusStartupInput]--brokenlink--(_gdiplus_STRUC_GdiplusStartupInput) structure to **TRUE**. When suppressing the GDI+ background thread, the **NotificationHook** and **NotificationUnhook** calls (see [GdiplusStartupOutput]--brokenlink--(_gdiplus_STRUC_GdiplusStartupOutput)) should be made just prior to entering and exiting the application's message loop. Therefore, a good place to call **GdiplusStartup** and the hook notification functions would be in an override of the virtual function [CWinApp::Run](../mfc/reference/cwinapp-class.md#run), as shown below:
34+
You can do this by setting the **SuppressBackgroundThread** member of the [GdiplusStartupInput](https://msdn.microsoft.com/library/ms534067) structure to **TRUE**. When suppressing the GDI+ background thread, the **NotificationHook** and **NotificationUnhook** calls should be made just prior to entering and exiting the application's message loop. For more information on these calls, see [GdiplusStartupOutput](https://msdn.microsoft.com/library/ms534068). Therefore, a good place to call **GdiplusStartup** and the hook notification functions would be in an override of the virtual function [CWinApp::Run](../mfc/reference/cwinapp-class.md#run), as shown below:
3535

3636
[!code-cpp[NVC_MFCDocView#6](../mfc/codesnippet/cpp/special-cwinapp-services_1.cpp)]
3737

0 commit comments

Comments
 (0)