Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/****************************** Module Header ******************************\
* Module Name: help.c * * Copyright (c) 1985 - 1999, Microsoft Corporation * * This module contains the various rectangle manipulation APIs. * * History: * 23-May-95 BradG Created for Kernel mode \***************************************************************************/
BOOL FIsParentDude(PWND pwnd) { return(TestWF(pwnd, WEFCONTROLPARENT) || TestWF(pwnd, WFDIALOGWINDOW) || ((TestWF(pwnd, BFTYPEMASK) == BS_GROUPBOX) && IS_BUTTON(pwnd))); }
/***************************************************************************\
* GetContextHelpId() * Given a pwnd, this returns the Help Context Id for that window; * Note: If a window does not have a Context Id of its own, then it inherits * the ContextId of it's parent, if it is a child window; else, from its owner, * it is a owned popup. \***************************************************************************/
DWORD GetContextHelpId( PWND pwnd) { DWORD dwContextId;
while (!(dwContextId = (DWORD)(ULONG_PTR)_GetProp(pwnd, MAKEINTATOM(gpsi->atomContextHelpIdProp), PROPF_INTERNAL))) { pwnd = (TestwndChild(pwnd) ? REBASEPWND(pwnd, spwndParent) : REBASEPWND(pwnd, spwndOwner)); if (!pwnd || (GETFNID(pwnd) == FNID_DESKTOP)) break; }
return dwContextId; }
/*
* Dialog Child enumeration proc * * Enumerates children of a dialog looking for the child under the mouse. * */ BOOL CALLBACK EnumPwndDlgChildProc(PWND pwnd, LPARAM lParam) { PDLGENUMDATA pDlgEnumData = (PDLGENUMDATA)lParam;
if (pwnd != pDlgEnumData->pwndDialog && IsVisible(pwnd) && PtInRect(KPRECT_TO_PRECT(&pwnd->rcWindow), pDlgEnumData->ptCurHelp)) { /*
* If it's a group box, keep enumerating. This takes care of * the case where we have a disabled control in a group box. * We'll find the group box first, and keep enumerating until we * hit the disabled control. */ pDlgEnumData->pwndControl = pwnd; return (FIsParentDude(pwnd)); } return TRUE; }
|