void SendTriggerMsgToObject(LPBASECLASS pSender, HOBJECT hObj, HSTRING hMsg)
{
    HMESSAGEWRITE hMessage;
    char *pSendName, *pRecvName, *pFilter;

    char* szMessage = g_pLTServer->GetStringData(hMsg);


    // Process the message as a command if it is a valid command...

    if (g_pCmdMgr->IsValidCmd(szMessage))
    {
        g_pCmdMgr->Process(szMessage);
        return;
    }


    hMessage = g_pLTServer->StartMessageToObject(pSender, hObj, MID_TRIGGER);
    if (hMessage)
    {
        if (g_ShowTriggersTrack.GetFloat() != 0.0f)
        {
            if (pSender) pSendName = g_pLTServer->GetObjectName(pSender->m_hObject);
            else pSendName = "Command Manager";

            pRecvName   = g_pLTServer->GetObjectName(hObj);
            pFilter		= g_ShowTriggersFilter.GetStr();

            // Filter out displaying any unwanted messages...

            LTBOOL bPrintMsg = (!pFilter || !pFilter[0]);
            if (!bPrintMsg)
            {
                bPrintMsg = (szMessage ? !strstr(pFilter, szMessage) : LTTRUE);
            }

            if (bPrintMsg)
            {
                g_pLTServer->CPrint("Message: %s", szMessage ? szMessage : "NULL");
                g_pLTServer->CPrint("  Sent from '%s', to '%s'", pSendName, pRecvName);
            }
        }

        g_pLTServer->WriteToMessageDWord(hMessage, (uint32)g_pLTServer->GetStringData(hMsg));
        g_pLTServer->EndMessage(hMessage);
    }
}