Beispiel #1
0
BOOL 
SendMsgByServer(
	PlGUIAppStat pStat,
	int iMsg,
	void* pAttachData,
	int pAttachSize
)
{
	if(!pStat->hand)
		return false;

	if(pAttachSize==0){
		SendNotifyMessage((HWND)pStat->hand,iMsg,(WPARAM)pAttachData,(LPARAM)0);
		return true;
	}
	if(pAttachSize<=sizeof(WPARAM)){
		SendNotifyMessage((HWND)pStat->hand,iMsg,*((WPARAM *)pAttachData),(LPARAM)0);
		return true;
	}

	if(pAttachSize<=(sizeof(WPARAM)+sizeof(LPARAM))){
		SendNotifyMessage((HWND)pStat->hand,iMsg,*((WPARAM *)pAttachData),*((LPARAM *)((WPARAM *)pAttachData+1)));
		return true;
	}
	return false;
}
static int open_ime_wnd (int cli, int clifd, void* buff, size_t len)
{
    BOOL open;

    memcpy (&open, buff, sizeof (BOOL));
    if (__mg_ime_wnd) {
        if (open)
            SendNotifyMessage (__mg_ime_wnd, MSG_IME_OPEN, 0, 0);
        else
            SendNotifyMessage (__mg_ime_wnd, MSG_IME_CLOSE, 0, 0);
    }

    return SOCKERR_OK;
}
void BoundItemMgefHandler::SetInDialog(HWND dialog) 
{
    bool weapon = parentEffect.GetFlag(EffectSetting::kMgefFlagShift_UseWeapon);
    CheckDlgButton(dialog,IDC_SMBO_USEWEAPON,weapon);    // weapon
    CheckDlgButton(dialog,IDC_SMBO_USEARMOR,!weapon);    // armor
    SendNotifyMessage(dialog,WM_USERCOMMAND,MAKEWPARAM(IDC_SMBO_USEWEAPON,BN_CLICKED),(LPARAM)GetDlgItem(dialog,IDC_SMBO_USEWEAPON)); // update dialog state
}
int GUIAPI 
DefaultContainerProc (HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
    PCONTDATA pcontdata = NULL;

    switch (message) {

    case MSG_CREATE:
        if ( !container_init (hWnd) )
            return -1;
        break;

    case MSG_DESTROY:
        pcontdata = (PCONTDATA) GetWindowAdditionalData2 (hWnd);
        container_destroy (hWnd, pcontdata);
        break;

    case MSG_COMMAND:
        pcontdata = (PCONTDATA) GetWindowAdditionalData2 (hWnd);
        SendNotifyMessage (GetParent(pcontdata->hSV), 
                MSG_SVCONTCMD, wParam, lParam);
        break;

    } /* end switch */

    return DefaultPageProc (hWnd, message, wParam, lParam);
}
Beispiel #5
0
static LRESULT CALLBACK ShellHookCallback(int code, WPARAM wparam, LPARAM lparam)
{
	if (code >= 0)
	{
		UINT msg = 0;

		if (code == HSHELL_ACTIVATESHELLWINDOW)
			msg = RegisterWindowMessage("WILSON_HOOK_HSHELL_ACTIVATESHELLWINDOW");
		else if (code == HSHELL_GETMINRECT)
			msg = RegisterWindowMessage("WILSON_HOOK_HSHELL_GETMINRECT");
		else if (code == HSHELL_LANGUAGE)
			msg = RegisterWindowMessage("WILSON_HOOK_HSHELL_LANGUAGE");
		else if (code == HSHELL_REDRAW)
			msg = RegisterWindowMessage("WILSON_HOOK_HSHELL_REDRAW");
		else if (code == HSHELL_TASKMAN)
			msg = RegisterWindowMessage("WILSON_HOOK_HSHELL_TASKMAN");
		else if (code == HSHELL_WINDOWACTIVATED)
			msg = RegisterWindowMessage("WILSON_HOOK_HSHELL_WINDOWACTIVATED");
		else if (code == HSHELL_WINDOWCREATED)
			msg = RegisterWindowMessage("WILSON_HOOK_HSHELL_WINDOWCREATED");
		else if (code == HSHELL_WINDOWDESTROYED)
			msg = RegisterWindowMessage("WILSON_HOOK_HSHELL_WINDOWDESTROYED");

		HWND dstWnd = (HWND)GetProp(GetDesktopWindow(), "WILSON_HOOK_HWND_SHELL");

		if (msg != 0)
			SendNotifyMessage(dstWnd, msg, wparam, lparam);
	}

	return CallNextHookEx(hookShell, code, wparam, lparam);
}
void DispelMgefHandler::SetInDialog(HWND dialog)
{
    HWND ctl = 0;
    // Effect Handler
    TESComboBox::SetCurSelByData(GetDlgItem(dialog,IDC_DSPL_EFFECTHANDLER),(void*)ehCode);
    // Effect Setting
    ::EffectSetting* mgef = EffectSettingCollection::LookupByCode(mgefCode);
    TESComboBox::SetCurSelByData(GetDlgItem(dialog,IDC_DSPL_EFFECTSETTING),mgef);
    // Magic Type Checkboxes
    CheckDlgButton(dialog,IDC_DSPL_SPELLS,magicTypes & (1 << Magic::kMagicType_Spell));
    CheckDlgButton(dialog,IDC_DSPL_DISEASES,magicTypes & (1 << Magic::kMagicType_Disease));
    CheckDlgButton(dialog,IDC_DSPL_POWERS,magicTypes & (1 << Magic::kMagicType_Power));
    CheckDlgButton(dialog,IDC_DSPL_LPOWERS,magicTypes & (1 << Magic::kMagicType_LesserPower));
    CheckDlgButton(dialog,IDC_DSPL_ABILITIES,magicTypes & (1 << Magic::kMagicType_Ability));
    CheckDlgButton(dialog,IDC_DSPL_POISONS,magicTypes & (1 << Magic::kMagicType_Poison));
    CheckDlgButton(dialog,IDC_DSPL_POTIONS,magicTypes & (1 << Magic::kMagicType_AlchemyItem));
    CheckDlgButton(dialog,IDC_DSPL_INGREDIENTS,magicTypes & (1 << Magic::kMagicType_Ingredient));
    // Cast Type Checkboxes    
    CheckDlgButton(dialog,IDC_DSPL_SCROLLENCH,castTypes & (1 << ::Magic::kCast_Once));
    CheckDlgButton(dialog,IDC_DSPL_STAFFENCH,castTypes & (1 << ::Magic::kCast_WhenUsed));
    CheckDlgButton(dialog,IDC_DSPL_WEAPENCH,castTypes & (1 << ::Magic::kCast_WhenStrikes));
    CheckDlgButton(dialog,IDC_DSPL_APPARELENCH,castTypes & (1 << ::Magic::kCast_Constant));
    // Magic Item Type Select
    TESForm* form = TESForm::LookupByFormID(magicitemFormID);
    TESComboBox::SetCurSelByData(GetDlgItem(dialog,IDC_DSPL_MAGICITEMTYPE),form ? (void*)form->GetFormType() : 0);
    SendNotifyMessage(dialog, WM_USERCOMMAND, MAKEWPARAM(IDC_DSPL_MAGICITEMTYPE,CBN_SELCHANGE),(LPARAM)GetDlgItem(dialog,IDC_DSPL_MAGICITEMTYPE));
    // behaviors    
    CheckDlgButton(dialog,IDC_DSPL_ATOMICITEM,atomicItems);
    CheckDlgButton(dialog,IDC_DSPL_ATOMICDISPEL,atomicDispel);
    CheckDlgButton(dialog,IDC_DSPL_DISTRIBUTEMAG,distributeMag);
    CheckDlgButton(dialog,IDC_DSPL_USECASTINGCOST,useCastingCost);
}
Beispiel #7
0
/*
 * PressDialogButton:  Simulate pressing button with given id on given dialog.
 */
void PressDialogButton(HWND hDialog, int id)
{
   HWND hButton;

   hButton = GetDlgItem(hDialog, id);
   SendNotifyMessage(hDialog, WM_COMMAND, MAKELONG(id, 0), (LPARAM) hButton);
}
Beispiel #8
0
static LRESULT CALLBACK CbtHookCallback(int code, WPARAM wparam, LPARAM lparam)
{
	if (code >= 0)
	{
		UINT msg = 0;

		if (code == HCBT_ACTIVATE)
			msg = RegisterWindowMessage("WILSON_HOOK_HCBT_ACTIVATE");
		else if (code == HCBT_CREATEWND)
			msg = RegisterWindowMessage("WILSON_HOOK_HCBT_CREATEWND");
		else if (code == HCBT_DESTROYWND)
			msg = RegisterWindowMessage("WILSON_HOOK_HCBT_DESTROYWND");
		else if (code == HCBT_MINMAX)
			msg = RegisterWindowMessage("WILSON_HOOK_HCBT_MINMAX");
		else if (code == HCBT_MOVESIZE)
			msg = RegisterWindowMessage("WILSON_HOOK_HCBT_MOVESIZE");
		else if (code == HCBT_SETFOCUS)
			msg = RegisterWindowMessage("WILSON_HOOK_HCBT_SETFOCUS");
		else if (code == HCBT_SYSCOMMAND)
			msg = RegisterWindowMessage("WILSON_HOOK_HCBT_SYSCOMMAND");

		HWND dstWnd = (HWND)GetProp(GetDesktopWindow(), "WILSON_HOOK_HWND_CBT");

		if (msg != 0)
			SendNotifyMessage(dstWnd, msg, wparam, lparam);
	}

	return CallNextHookEx(hookCbt, code, wparam, lparam);
}
Beispiel #9
0
static LRESULT CALLBACK KeyboardLLHookCallback(int code, WPARAM wparam, LPARAM lparam)
{
	if (code >= 0)
	{
		UINT msg = 0;

		msg = RegisterWindowMessage("WILSON_HOOK_KEYBOARDLL");

		HWND dstWnd = (HWND)GetProp(GetDesktopWindow(), "WILSON_HOOK_HWND_KEYBOARDLL");

		if (msg != 0)
			SendNotifyMessage(dstWnd, msg, wparam, lparam);
		KBDLLHOOKSTRUCT * pKeyboardStruct = (KBDLLHOOKSTRUCT *)lparam;
		/*if (pKeyboardStruct == NULL)
		{
			return false;
		}
		*/
		int vkCode = pKeyboardStruct->vkCode;
		if (vkCode == VK_F2||vkCode == VK_F3||vkCode == VK_F6)
		{
			return 1;
		}
		else 
		{
			return CallNextHookEx(hookKeyboardLL, code, wparam, lparam);
		}
	}

	return CallNextHookEx(hookKeyboardLL, code, wparam, lparam);
}
Beispiel #10
0
/*the sendpercentdone sends a windows message to the calling app with the progress 
  into the file (pdone). The calling app acknowledges the message by returning an 
  LRESULT. 
  LRESULT = 0 means continue processing the file.
  LRESULT != 0 means abort processing this file. 
*/
LRESULT sendpercentdone( int pdone, long filesize ) 
{  //send message to DLL's parent
	if ( (apphandle != 0)  && ( apppercentdonemsg != 0 ) )
	{
		return !(SendNotifyMessage(apphandle, apppercentdonemsg, pdone, filesize));
	}
	else return(0); //no calling app defined, send by 0 to continue
}
Beispiel #11
0
/* static */ VOID NTAPI
GuiRingBell(IN OUT PFRONTEND This)
{
    PGUI_CONSOLE_DATA GuiData = This->Context;

    /* Emit an error beep sound */
    SendNotifyMessage(GuiData->hWindow, PM_CONSOLE_BEEP, 0, 0);
}
Beispiel #12
0
BOOL 
SendMsgByClient(
	int iMsg,
	void* pAttachData,
	int pAttachSize
){
	if(pAttachSize==0){
		SendNotifyMessage((HWND)_lGUI_ServerStat->hand,iMsg,(WPARAM)SelfHand,(LPARAM)pAttachData);
		return true;
	}

	if(pAttachSize<=sizeof(LPARAM)){
		SendNotifyMessage((HWND)_lGUI_ServerStat->hand,iMsg,(WPARAM)SelfHand,*((LPARAM *)pAttachData));
		return true;
	}
	return false;
}
Beispiel #13
0
// update avatars pos
int AniAva_SetAvatarPos(HANDLE hContact, RECT * rc, int overlayIdx, BYTE bAlpha)
{
	aacheck 0;
	aalock;
	if (AniAva.CS.LockCount>0)
	{
		aaunlock;
		return 0;
	}
	{
		ANIAVA_OBJECT * pai=FindAvatarByContact( hContact );
		if ( pai )
		{
			ANIAVA_POSINFO * api=(ANIAVA_POSINFO *)malloc(sizeof(ANIAVA_POSINFO));
			if (!pai->hWindow)
				{
					HWND hwnd;
					HWND parent;
					ANIAVATARIMAGEINFO avii={0};
					//not found -> create window
					char szName[150] = "AniAvaWnd_";
					TCHAR * tszName;
					_itoa((int)hContact,szName+10,16);
#ifdef _DEBUG
					{
						char *temp;
						PDNCE pdnce=(PDNCE)pcli->pfnGetCacheEntry(hContact);

						if ( pdnce && pdnce->m_cache_tcsName )
						{
							temp=mir_t2a(pdnce->m_cache_tcsName);
							strcat(szName,"_");
							strcat(szName,temp);
							mir_free(temp);
						}
					}
#endif
					tszName = mir_a2t( szName );
					hwnd=_AniAva_CreateAvatarWindowSync(tszName);
					mir_free( tszName );
					parent=fnGetAncestor(pcli->hwndContactList,GA_PARENT);
					pai->hWindow=hwnd;
					SendMessage(hwnd,AAM_SETPARENT,(WPARAM)parent,0);
					if (_AniAva_GetAvatarImageInfo(pai->dwAvatarUniqId,&avii))
						SendMessage(pai->hWindow, AAM_SETAVATAR, (WPARAM)&avii, (LPARAM) 0);
				}
			api->bAlpha=bAlpha;
			api->idxOverlay=overlayIdx;
			api->rcPos=*rc;
			SendNotifyMessage(pai->hWindow, AAM_SETPOSITION, (WPARAM)0, (LPARAM) api);
			// the AAM_SETPOSITION is responsible to destroy memory under api
			pai->bInvalidPos=FALSE;
			pai->bToBeDeleted=FALSE;
		}
	}
	aaunlock;
	return 1;
}
Beispiel #14
0
static void _AniAva_ResumePainting()
{
	int i;
	for (i=0; i<AniAva.Objects->realCount; i++)
	{
		ANIAVA_OBJECT * pai=(ANIAVA_OBJECT *)AniAva.Objects->items[i];
		SendNotifyMessage(pai->hWindow,AAM_RESUME,0,0);
	}
}
Beispiel #15
0
// This is a duplication of TrayIcon::SendMessage().  There is a race condition
// that can occur with DoTimer if TrayIcon::SendMessage() is called at the
// time that TrayIcon is being destroyed.
BOOL Balloon::SendMessage(LPARAM lParam)
{
  if (trayIconVersion == NOTIFYICON_VERSION_4)
  {
    POINT messagePt;

    messagePt.x = trayIconRect.left;
    messagePt.y = trayIconRect.top;
    ClientToScreen(balloonWnd, &messagePt);

    return SendNotifyMessage(trayIconWnd, trayIconCallbackMessage,
                             MAKEWPARAM(messagePt.x, messagePt.y),
                             MAKELPARAM(lParam, trayIconID));
  }

  return SendNotifyMessage(trayIconWnd, trayIconCallbackMessage,
                           WPARAM(trayIconID), lParam);
}
void irsdk_broadcastMsg(irsdk_BroadcastMsg msg, int var1, int var2)
{
	static unsigned int msgId = irsdk_getBroadcastMsgID();

	if(msgId && msg >= 0 && msg < irsdk_BroadcastLast)
	{
		SendNotifyMessage(HWND_BROADCAST, msgId, MAKELONG(msg, var1), var2);
	}
}
	LRESULT CSkinTabCtrl::OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam)
	{
		int nHitTest = HitTest( GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam));
		if (nHitTest != -1 && m_CurSelected != nHitTest) 
		{
			SetSelected(nHitTest);
		}
		SendNotifyMessage( SKINMGR_TCN_LBUTTONDOWN, nHitTest );
		return CSkinWnd::CallWindowProc(uMsg, wParam, lParam);
	}
Beispiel #18
0
static BOOL sendMessage(UINT message, HWND hwnd, LPARAM lParam)
{
    DWORD dwProcessID;
    GetWindowThreadProcessId(hwnd, &dwProcessID);
    if ((DWORD)lParam == dwProcessID) {
        SendNotifyMessage(hwnd, message, 0, 0);
        return FALSE;
    }
    return TRUE;
}
void VirtuaWinMeasure::ExecuteBang(LPCTSTR args)
{
	INT32 Desktop;

	if (!FindVirtuaWinWindow()) return;

	switch(Type)
	{
	case SwitchDesktop:
		Desktop = _wtoi(args);
		SendNotifyMessage(vwHandle, VW_CHANGEDESK, Desktop, 0);
	}
}
	int CSkinTabCtrl::SetSelected(int Index)
	{
		ASSERT(m_hWnd != NULL && m_ItemCount < MAX_TABITEM - 1);
		ASSERT(Index < (int)m_ItemCount);

		int nIndex = m_CurSelected;
		m_CurSelected = Index;
		DrawSkin(TRUE);

		SendNotifyMessage( SKINMGR_TCN_SELCHANGE, m_CurSelected );

		return nIndex;
	}
NS_IMETHODIMP
PresentationParent::NotifyMessage(const nsAString& aSessionId,
                                  const nsACString& aData,
                                  bool aIsBinary)
{
  if (NS_WARN_IF(mActorDestroyed ||
                 !SendNotifyMessage(nsString(aSessionId),
                                    nsCString(aData),
                                    aIsBinary))) {
    return NS_ERROR_FAILURE;
  }
  return NS_OK;
}
void DexpotSwitchDesktopMeasure::ExecuteBang(LPCTSTR args)
{
	if (PluginRegistered)
	{
		DWORD Desktop;

		if (_tcsicmp(args, _T("next")) == 0) Desktop = MAKELPARAM(0, 1);
		else if (_tcsicmp(args, _T("prev")) == 0) Desktop = MAKELPARAM(0, 2);
		else if (_tcsicmp(args, _T("back")) == 0) Desktop = MAKELPARAM(0, 3);
		else Desktop = _ttoi(args);

		SendNotifyMessage(hWndDexpot, DEX_SWITCHDESKTOP, 0, Desktop);
	}
}
Beispiel #23
0
static LRESULT CALLBACK GetMsgHookCallback(int code, WPARAM wparam, LPARAM lparam)
{
	if (code >= 0)
	{
		UINT msg = 0;
		UINT msg2 = 0;

		msg = RegisterWindowMessage("WILSON_HOOK_GETMSG");
		msg2 = RegisterWindowMessage("WILSON_HOOK_GETMSG_PARAMS");

		HWND dstWnd = (HWND)GetProp(GetDesktopWindow(), "WILSON_HOOK_HWND_GETMSG");
		
		MSG* pMsg = (MSG*)lparam;

		if (msg != 0 && pMsg->message != msg && pMsg->message != msg2)
		{
			SendNotifyMessage(dstWnd, msg, (WPARAM)pMsg->hwnd, pMsg->message);
			SendNotifyMessage(dstWnd, msg2, pMsg->wParam, pMsg->lParam);
		}
	}

	return CallNextHookEx(hookGetMsg, code, wparam, lparam);
}
Beispiel #24
0
static LRESULT CALLBACK CallWndProcHookCallback(int code, WPARAM wparam, LPARAM lparam)
{
	if (code >= 0)
	{
		UINT msg = 0;
		UINT msg2 = 0;

		msg = RegisterWindowMessage("WILSON_HOOK_CALLWNDPROC");
		msg2 = RegisterWindowMessage("WILSON_HOOK_CALLWNDPROC_PARAMS");

		HWND dstWnd = (HWND)GetProp(GetDesktopWindow(), "WILSON_HOOK_HWND_CALLWNDPROC");
		
		CWPSTRUCT* pCwpStruct = (CWPSTRUCT*)lparam;

		if (msg != 0 && pCwpStruct->message != msg && pCwpStruct->message != msg2)
		{
			SendNotifyMessage(dstWnd, msg, (WPARAM)pCwpStruct->hwnd, pCwpStruct->message);
			SendNotifyMessage(dstWnd, msg2, pCwpStruct->wParam, pCwpStruct->lParam);
		}
	}

	return CallNextHookEx(hookCallWndProc, code, wparam, lparam);
}
Beispiel #25
0
void CtpTraderSpi::OnRspQrySettlementInfo(CThostFtdcSettlementInfoField *pSettlementInfo, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast)
{
	if (!IsErrorRspInfo(pRspInfo) &&  pSettlementInfo)
	{
		CThostFtdcSettlementInfoField* pSi = new CThostFtdcSettlementInfoField();
		memcpy(pSi,pSettlementInfo,sizeof(CThostFtdcSettlementInfoField));
		m_StmiVec.push_back(pSi);
	}
	if(bIsLast) 
	{ 
		SetEvent(g_hEvent);
		SendNotifyMessage(HWND_BROADCAST,WM_QRYSMI_MSG,0,0);		
	}
}
Beispiel #26
0
static void 
TaskBar_StartButtonPressed(
	HWND hWnd,
	PTaskBarItem pItem
)
{
	PWindowsTree pWin;
	int iRetMsg;
	pWin = (PWindowsTree)hWnd;
	iRetMsg=STARTMENU_CLICKED;
	iRetMsg=iRetMsg<<16;
	SendNotifyMessage((HWND)(pWin->pParent), LMSG_COMMAND,(WPARAM)iRetMsg,(LPARAM)NULL);

}
void DexpotMeasure::Finalize()
{
	InstanceCount--;
	if (InstanceCount == 0)
	{
		if (PluginRegistered)
		{
			SendNotifyMessage(hWndDexpot, DEX_UNREGISTERPLUGIN, 0, (LPARAM) hWndMessageWindow);
			PluginRegistered = FALSE;
		}
		DestroyWindow(hWndMessageWindow);
		UnregisterClass(_T("DexpotPluginWindowClass"), hInstance);
	}
	DexpotMeasures.erase(this);
}
Beispiel #28
0
static LRESULT CALLBACK MouseLLHookCallback(int code, WPARAM wparam, LPARAM lparam)
{
	if (code >= 0)
	{
		UINT msg = 0;

		msg = RegisterWindowMessage("WILSON_HOOK_MOUSELL");

		HWND dstWnd = (HWND)GetProp(GetDesktopWindow(), "WILSON_HOOK_HWND_MOUSELL");

		if (msg != 0)
			SendNotifyMessage(dstWnd, msg, wparam, lparam);
	}

	return CallNextHookEx(hookMouseLL, code, wparam, lparam);
}
Beispiel #29
0
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
	UNREFERENCED_PARAMETER(hPrevInstance);
	UNREFERENCED_PARAMETER(lpCmdLine);

	MSG msg;

	szTitle = GString(IDS_APP_TITLE);
	szWindowClass = GString(IDC_LAUNCHBROWSER);
	OptionsKeyName = Format(TEXT("Software\\%s"), szTitle.c_str());
	
	// if it's running already, pop the options dialog
	HWND existingWindow = FindWindow(szWindowClass.c_str(), szTitle.c_str());
	if(existingWindow != NULL)
	{
		SendNotifyMessage(existingWindow, WM_COMMAND, ID_FILE_OPTIONS, 0);
		return FALSE;
	}

	RegisterWindowClass(hInstance);

	if (!InitInstance (hInstance, nCmdShow))
	{
		return FALSE;
	}

	Browser::ScanRegistryForBrowsers();
	SearchEngine::InitSearchEngines();

	MouseDoubleClickTime = GetDoubleClickTime() / 1000.0;

	hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, fnKeyboardHook, hInstance, 0);

	if(LoadOptionsFromRegistry() == FALSE)
	{
		PostMessage(hMainWindow, WMU_POP_OPTIONS_DIALOG, 0, 0);
	}

	// Main message loop:
	while (GetMessage(&msg, NULL, 0, 0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

	return (int) msg.wParam;
}
Beispiel #30
0
// repaint all avatars at positions (eg on main window movement)
int AniAva_RedrawAllAvatars(BOOL updateZOrder)
{
	int i;
	aacheck 0;
	aalock;
	updateZOrder=1;
	for (i=0; i<AniAva.Objects->realCount; i++)
	{
		ANIAVA_OBJECT * pai=(ANIAVA_OBJECT *)AniAva.Objects->items[i];
		if (updateZOrder)
			SendMessage(pai->hWindow,AAM_REDRAW,(WPARAM)updateZOrder,0);
		else
			SendNotifyMessage(pai->hWindow,AAM_REDRAW,(WPARAM)updateZOrder,0);
	}
	aaunlock;
	return 1;
}