Error del sistema. Código: 8. No hay suficiente almacenamiento disponible para procesar este comando

Tenemos algunas aplicaciones Win32 (codificadas en Delphi 2006) donde a veces el usuario recibe un mensaje de error que dice "Error del sistema. Código: 8. No hay suficiente almacenamiento disponible para procesar este comando"..

Desde el stacktrace parece que siempre es durante la llamada CreateWnd

Main ($1edc):
004146cc +070 app.exe SysUtils               RaiseLastOSError
00414655 +005 app.exe SysUtils               RaiseLastOSError
004ce44c +130 app.exe Controls               TWinControl.CreateWnd
00535a72 +022 app.exe cxControls             TcxControl.CreateWnd
004ce82a +016 app.exe Controls               TWinControl.CreateHandle
00553d21 +005 app.exe cxContainer            TcxContainer.CreateHandle
00586ef1 +005 app.exe cxEdit                 TcxCustomEdit.CreateHandle
005c331d +005 app.exe cxDropDownEdit         TcxCustomDropDownEdit.CreateHandle
004ceaf0 +074 app.exe Controls               TWinControl.UpdateShowing
004ceb1e +0a2 app.exe Controls               TWinControl.UpdateShowing
004cebdc +03c app.exe Controls               TWinControl.UpdateControlState
004d118a +026 app.exe Controls               TWinControl.CMVisibleChanged
004cb713 +2bb app.exe Controls               TControl.WndProc
004cf569 +499 app.exe Controls               TWinControl.WndProc
004b727d +4c1 app.exe Forms                  TCustomForm.WndProc
004cb3a0 +024 app.exe Controls               TControl.Perform
004c9f6a +026 app.exe Controls               TControl.SetVisible
004b6c46 +03a app.exe Forms                  TCustomForm.SetVisible
004baf1b +007 app.exe Forms                  TCustomForm.Show
004bb151 +14d app.exe Forms                  TCustomForm.ShowModal
007869c7 +0d3 app.exe UfrmPrice      770 +19 TfrmPrice.EditPrice
0078655d +009 app.exe UfrmPrice      628  +0 TfrmPrice.actNewBidExecute
00431ce7 +00f app.exe Classes                TBasicAction.Execute
004c2cb5 +031 app.exe ActnList               TContainedAction.Execute
004c397c +050 app.exe ActnList               TCustomAction.Execute
00431bb3 +013 app.exe Classes                TBasicActionLink.Execute
004af384 +090 app.exe Menus                  TMenuItem.Click
004b059f +013 app.exe Menus                  TMenu.DispatchCommand
004b16fe +082 app.exe Menus                  TPopupList.WndProc
004b164d +01d app.exe Menus                  TPopupList.MainWndProc
004329a8 +014 app.exe Classes                StdWndProc
7e4196b2 +00a USER32.dll                     DispatchMessageA
004bea60 +0fc app.exe Forms                  TApplication.ProcessMessage
004bea9a +00a app.exe Forms                  TApplication.HandleMessage
004becba +096 app.exe Forms                  TApplication.Run
008482c5 +215 app.exe AppName        129 +42 initialization

Nunca he podido llegar al fondo de lo que causa esto y, como sucede con bastante frecuencia, no me he preocupado, pero me gustaría saber qué lo causa y, con suerte, rectificarlo ...

EDITAR Full Stacktrace

EDIT 2: Más información ... El cliente que experimentó esto hoy ha tenido mi aplicación instalada durante aproximadamente 4 meses y está funcionando en su PC 8 horas al día. El problema solo apareció hoy y siguió apareciendo a pesar de que mató mi aplicación y la reinició. Ninguna de las otras aplicaciones en su sistema se comportó de manera extraña. Después de reiniciar, el problema desaparece por completo. ¿Esto apunta hacia la escasez de pilas que Steve menciona?

EDIT 3: Interesante publicación de blog msdnaqu yaqu sobre el tema del montón de escritorio. Aunque no estoy seguro de si esta es la causa del problema, ciertamente parece probable.

Respuestas a la pregunta(7)

Su respuesta a la pregunta