PCLS Class;
ASSERT(BaseClass->pclsBase == BaseClass);
- Class = IntGetClassForDesktop(BaseClass,
- ClassLink,
- Desktop);
+ if (Desktop != NULL)
+ {
+ Class = IntGetClassForDesktop(BaseClass,
+ ClassLink,
+ Desktop);
+ }
+ else
+ {
+ Class = BaseClass;
+ }
+
if (Class != NULL)
{
Class->cWndReferenceCount++;
}
PCLS
-IntGetAndReferenceClass(PUNICODE_STRING ClassName, HINSTANCE hInstance)
+IntGetAndReferenceClass(PUNICODE_STRING ClassName, HINSTANCE hInstance, BOOL bDesktopThread)
{
PCLS *ClassLink, Class = NULL;
RTL_ATOM ClassAtom;
PTHREADINFO pti;
- pti = PsGetCurrentThreadWin32Thread();
+ if (bDesktopThread)
+ pti = gptiDesktopThread;
+ else
+ pti = PsGetCurrentThreadWin32Thread();
if ( !(pti->ppi->W32PF_flags & W32PF_CLASSESREGISTERED ))
{