Ejemplo n.º 1
0
Dialog* Dialog::createDialogByScript( const char* dialogName )
{
	char tempBuf[256];
	Tcl_Interp* interp = GetScriptManager().getInterp();
	
	StringCchPrintfA( tempBuf, 256, "%s::region", dialogName );
	TileRegion region;
	GetScriptManager().readRect( tempBuf, region );

	StringCchPrintfA( tempBuf, 256, "%s::dialog", dialogName );
	Tcl_Obj* dialogObj = GetScriptManager().getObject( tempBuf );
	int dialogTokenCount;
	Tcl_ListObjLength( interp, dialogObj, &dialogTokenCount );
	UINT speakCount = dialogTokenCount / 2;
	Dialog::Speak* speakArray = new Dialog::Speak[ speakCount ];
	UINT i;
	for ( i = 0; i < speakCount; ++i )
	{
		Tcl_Obj* elem;
		int length;
		Tcl_ListObjIndex( interp, dialogObj, i*2 + 0, &elem );
		speakArray[ i ].name = Tcl_GetStringFromObj( elem, &length );
		Tcl_ListObjIndex( interp, dialogObj, i*2 + 1, &elem );
		speakArray[ i ].content = Tcl_GetStringFromObj( elem, &length );
	}

	StringCchPrintfA( tempBuf, 256, "%s::oneTime", dialogName );
	int oneTime = GetScriptManager().readInt( tempBuf );

	return new Dialog( speakArray, speakCount, &region, oneTime?true:false, dialogName );
}
Ejemplo n.º 2
0
HRESULT World::init()
{
    HRESULT hr = S_OK;
    if ( GetG().m_videoMan->GetDev() )
        loadWorldModel();

    char command[128];
    StringCchPrintfA( command, 128, "%s::init 0x%p", m_worldName.c_str(), this );
    GetScriptManager().execute( command );

    if ( !m_sound )
    {
        m_sound = new Sound;
        m_sound->init();
    }
    else
        throw std::runtime_error( "Sound should not be init twice or more" );



    // 'enter' function implemented in the script file defines which characters are exist in this world
    char scriptCommand[128];
    StringCchPrintfA( scriptCommand, 128, "%s::enter", m_worldName.c_str() );
    GetScriptManager().execute( scriptCommand );

    // Hero and enemies are defined afterwards

    // CAUTION To be set by RakNet ReplicaManager
    assert( m_heroUnit );

    m_curDialog = 0;
    return hr;
}
Ejemplo n.º 3
0
ULONG
GetSockOptDecode(
	IN PBTR_FILTER_RECORD Record,
	IN ULONG MaxCount,
	OUT PWCHAR Buffer
	)
{
	PSK_GETSOCKOPT Data;
	CHAR Value[MAX_PATH];

	if (Record->ProbeOrdinal != _getsockopt) {
		return S_FALSE;
	}	

	Data = (PSK_GETSOCKOPT)Record->Data;

	if (Data->optname == SO_LINGER) {
		StringCchPrintfA(Value, MAX_PATH, "%d:%d", Data->OptionValue[0], Data->OptionValue[1]);
	}
	else if (Data->OptionLength <= sizeof(int)) {
		StringCchPrintfA(Value, MAX_PATH, "%d", *(int *)&Data->OptionValue[0]);
	} 
	else {
		Value[0] = 0;
	}

	StringCchPrintf(Buffer, MaxCount - 1, 
		L"socket=%d, level=%d, optname=%d, optval=0x%p (%S), optlen=0x%p (%d), return=%d, LastErrorStatus=0x%08x",
		Data->sk, Data->level, Data->optname, Data->optval, Value, Data->optlen, Data->OptionLength, 
		Data->ReturnValue, Data->Status);

	return S_OK;
}
Ejemplo n.º 4
0
/*******************************************************************
Dutil_Trace

*******************************************************************/
extern "C" void DAPI Dutil_Trace(
								 __in LPCSTR szFile,
								 __in int iLine,
								 __in REPORT_LEVEL rl,
								 __in LPCSTR szFormat,
								 ...
								 )
{
	AssertSz(REPORT_NONE != rl, "REPORT_NONE is not a valid tracing level");

	HRESULT hr = S_OK;
	char szOutput[DUTIL_STRING_BUFFER];
	char szMsg[DUTIL_STRING_BUFFER];

	if (Dutil_rlCurrentTrace < rl)
		return;

	va_list args;
	va_start(args, szFormat);
	hr = StringCchVPrintfA(szOutput, countof(szOutput), szFormat, args);
	va_end(args);

	if (SUCCEEDED(hr))
	{
		LPCSTR szPrefix = "Trace/u";
		char szMsg[DUTIL_STRING_BUFFER];
		switch (rl)
		{
		case REPORT_STANDARD:
			szPrefix = "Trace/s";
			break;
		case REPORT_VERBOSE:
			szPrefix = "Trace/v";
			break;
		case REPORT_DEBUG:
			szPrefix = "Trace/d";
			break;
		}

		if (Dutil_fTraceFilenames)
			hr = StringCchPrintfA(szMsg, countof(szMsg), "%s [%s,%d]: %s\r\n", szPrefix, szFile, iLine, szOutput);
		else
			hr = StringCchPrintfA(szMsg, countof(szMsg), "%s: %s\r\n", szPrefix, szOutput);

		if (SUCCEEDED(hr))
			OutputDebugStringA(szMsg);
		// else fall through to the case below
	}

	if (FAILED(hr))
	{
		if (Dutil_fTraceFilenames)
			StringCchPrintfA(szMsg, countof(szMsg), "Trace [%s,%d]: message too long, skipping\r\n", szFile, iLine);
		else
			StringCchPrintfA(szMsg, countof(szMsg), "Trace: message too long, skipping\r\n");
		OutputDebugStringA(szMsg);
	}
}
Ejemplo n.º 5
0
void IsModuleLoaded(PCTSTR pszModuleName) {

   HMODULE hmod = GetModuleHandle(pszModuleName);
   char sz[100];
#ifdef UNICODE
   StringCchPrintfA(sz, _countof(sz), "Module \"%S\" is %Sloaded.", 
      pszModuleName, (hmod == NULL) ? L"not " : L"");
#else
   StringCchPrintfA(sz, _countof(sz), "Module \"%s\" is %sloaded.", 
      pszModuleName, (hmod == NULL) ? "not " : "");
#endif
   chMB(sz);
}
Ejemplo n.º 6
0
ULONG
GetSockNameDecode(
	IN PBTR_FILTER_RECORD Record,
	IN ULONG MaxCount,
	OUT PWCHAR Buffer
	)
{
	PSK_GETSOCKNAME Data;
	CHAR Address[MAX_PATH];

	if (Record->ProbeOrdinal != _getsockname) {
		return S_FALSE;
	}	

	Data = (PSK_GETSOCKNAME)Record->Data;

	if (Data->name) {
		StringCchPrintfA(Address, MAX_PATH - 1, "%S:%d", 
			inet_ntoa(Data->Name.sin_addr), ntohs(Data->Name.sin_port));
	} else {
		Address[0] = 0;
	}

	StringCchPrintf(Buffer, MaxCount - 1, 
		L"socket=%d, name=0x%p (%S), namelen=0x%p (%d), return=%d, LastErrorStatus=0x%08x",
		Data->sk, Data->name, Address, Data->namelen, Data->NameLength, Data->ReturnValue, Data->Status);

	return S_OK;
}
Ejemplo n.º 7
0
ULONG
GetHostByAddrDecode(
	IN PBTR_FILTER_RECORD Record,
	IN ULONG MaxCount,
	OUT PWCHAR Buffer
	)
{
	PSK_GETHOSTBYADDR Data;
	CHAR Host[MAX_PATH];
	IN_ADDR addr;

	if (Record->ProbeOrdinal != _gethostbyaddr) {
		return S_FALSE;
	}	

	Data = (PSK_GETHOSTBYADDR)Record->Data;

	addr.s_addr = *(u_long *)Data->Host.h_addr_list[0];
	StringCchPrintfA(Host, MAX_PATH, "%s:%s", Data->Host.h_name, inet_ntoa(addr));

	StringCchPrintf(Buffer, MaxCount - 1, 
		L"addr=0x%p (%S), len=%d, type=%d, return=0x%p (%S), LastErrorStatus=0x%08x",
		Data->addr, Data->Address, Data->len, Data->type, Data->ReturnValue, Host, Data->Status);

	return S_OK;
}
Ejemplo n.º 8
0
    bool AVMPI_getFunctionNameFromPC(uintptr_t pc, char *buffer, size_t bufferSize)
    {
#ifdef UNDER_CE
        (void)pc;
        (void)buffer;
        (void)bufferSize;
        return false;
#else

        if(!InitDbgHelp())
            return false;

        // gleaned from IMAGEHLP_SYMBOL64 docs
        IMAGEHLP_SYMBOL64 *pSym = (IMAGEHLP_SYMBOL64 *) alloca(sizeof(IMAGEHLP_SYMBOL64) + MaxNameLength);
        pSym->SizeOfStruct = sizeof(IMAGEHLP_SYMBOL64);
        pSym->MaxNameLength = MaxNameLength;

        DWORD64 offsetFromSymbol;
        if(!g_DbgHelpDll.m_SymGetSymFromAddr64 ||
            !(*g_DbgHelpDll.m_SymGetSymFromAddr64)(GetCurrentProcess(), pc, &offsetFromSymbol, pSym)) {
                return false;
        }

        StringCchPrintfA(buffer, bufferSize, "%s", pSym->Name);
        //printf("%s\n", pSym->Name);
        return true;

#endif //UNDER_CE
    }
    //////////////////////////////////////////////////////////////////////////////////////////
    // RtfWriter::write
    //! Writes a character to the stream
    //! 
    //! \param[in] ch - The character
    //! 
    //! \throw wtl::logic_error - [Debug only] Writer has been closed
    //! \throw wtl::domain_error - I/O error occurred
    //////////////////////////////////////////////////////////////////////////////////////////
    void   write(element_t ch)
    {
      element_t buf[10];

      // Check stream is open
      if (Closed)
        throw wtl::logic_error(HERE, "Writer is closed");

      // Escape/Convert char:
      switch (ch)
      {
      case '{':
      case '}':
        writeChar('\\');
        writeChar(ch);
        break;

      case '\\': writeString("\\\\");     break;
      case '\n': writeString("\\line ");  break;
      case '\t': writeString("\\tab ");   break;

      default:
        // ANSI char:
        if (ch <= 0x7f)
          writeChar(ch);
        else
        {  // UNICODE char:
          StringCchPrintfA(buf, 10, "\\u%u?", (uint32_t)ch);
          writeString(buf);
        }
        break;
      }
    }
    //////////////////////////////////////////////////////////////////////////////////////////
    // RtfWriter::setForeColour
    //! Sets the text colour
    //!
    //! \param[in] c - The colour
    //!
    //! \throw wtl::invalid_argument - Unrecognised colour
    //! \throw wtl::logic_error - [Debug only] Writer has been closed
    //! \throw wtl::domain_error - I/O error occurred
    //////////////////////////////////////////////////////////////////////////////////////////
    void   setForeColour(COLORREF c)
    {
      CHR buf[10];

      // Check stream is open
      if (Closed)
        throw wtl::logic_error(HERE, "Writer is closed");

      // Skip if colour already set
      if (ForeColour == c)
        return;

      // Lookup colour ID
      for (UINT id = 0; id < Colours.size(); id++)
        if (Colours[id] == c)
        {  // Write colour change
          StringCchPrintfA(buf, 10, "\\cf%d ", id + 1);
          writeString(buf);
          ForeColour = c;
          return;
        }

      // Unknown colour
      throw wtl::invalid_argument(HERE, "No such colour in the colour table");
    }
Ejemplo n.º 11
0
///--- AICI FACE RENDER ---
void RenderFrame(double dTime)
{
	long i;

	float	scrX,scrY;
	long	x1,y1,x2,y2;

	baloons.paintBaloons(&buffer);


	//--- draw mouse cursor ---
	if(g_bLmouseButt)
	{
		buffer.line(g_ptMouse.x - 5, g_ptMouse.y , g_ptMouse.x + 4, g_ptMouse.y , 0, 180, 0);
		buffer.line(g_ptMouse.x , g_ptMouse.y - 5, g_ptMouse.x, g_ptMouse.y + 4, 0, 180, 0);
	}
	else
	{
		buffer.line(g_ptMouse.x - 6, g_ptMouse.y , g_ptMouse.x + 5, g_ptMouse.y , 0, 255, 0);
		buffer.line(g_ptMouse.x , g_ptMouse.y - 6, g_ptMouse.x, g_ptMouse.y + 5, 0, 255, 0);
	}


///--- draw FPS ---
	char fpstxt[MAX_PATH];
	StringCchPrintfA(fpstxt, MAX_PATH, "FPS: %d dTime:%.5f", fps, dTime);
	buffer.drawText(0, 0, fpstxt, 0x00ff00ff);
}
Ejemplo n.º 12
0
ULONG __cdecl
DbgPrintEntry(
    __in PCHAR Format,
	...
	)
{
	PDBG_OUTPUTA Filter;
	PBTR_FILTER_RECORD Record;
	BTR_PROBE_CONTEXT Context;
	DBGPRINT Routine;
	size_t Length;
	ULONG UserLength;
	va_list arg;
	PULONG_PTR Sp;
	ULONG Result;
	char format[512];
	char buffer[512];
	
	BtrFltGetContext(&Context);
	Routine = Context.Destine;

	//
	// N.B. Maximum support 16 arguments
	//

	Sp = (PULONG_PTR)&Format + 1;
	Result = (*Routine)(Format, Sp[0], Sp[1], Sp[2], Sp[3], Sp[4],
			   Sp[5], Sp[6], Sp[7], Sp[8], Sp[9], 
			   Sp[10], Sp[11], Sp[12], Sp[13], Sp[14]);

	BtrFltSetContext(&Context);

	__try {

		va_start(arg, Format);
		StringCchVPrintfA(format, 512, Format, arg);
		StringCchPrintfA(buffer, 512, "%s", format);
		Length = strlen(buffer) + 1;
		va_end(arg);

		UserLength = FIELD_OFFSET(DBG_OUTPUTA, Text[Length]);
		Record = BtrFltAllocateRecord(UserLength, DbgUuid, _DbgPrint);
		if (!Record) {
			return Result;
		}

		Filter = FILTER_RECORD_POINTER(Record, DBG_OUTPUTA);
		Filter->Length = Length;
		StringCchCopyA(Filter->Text, Length, buffer);

		BtrFltQueueRecord(Record);
	}
	__except (EXCEPTION_EXECUTE_HANDLER) {
		if (Record) {
			BtrFltFreeRecord(Record);
		}		
	}

	return Result;
}
Ejemplo n.º 13
0
ULONG 
WSAConnectDecode(
	IN PBTR_FILTER_RECORD Record,
	IN ULONG MaxCount,
	OUT PWCHAR Buffer
	)
{
	PSK_WSACONNECT Data;
	CHAR Address[MAX_PATH];

	if (Record->ProbeOrdinal != _WSAConnect) {
		return S_FALSE;
	}	

	Data = (PSK_WSACONNECT)Record->Data;

	if (Data->name) {
		StringCchPrintfA(Address, MAX_PATH - 1, "%S:%d", 
			inet_ntoa(Data->Address.sin_addr), ntohs(Data->Address.sin_port));
	} else {
		Address[0] = 0;
	}

	StringCchPrintf(Buffer, MaxCount - 1, 
		L"socket=%d, name=0x%p (%S), namelen=%d, lpCallerData=0x%p, lpCalleeData=0x%p,"
		L"lpSQOS=0x%p, lpGQOS=0x%p, return=%d, LastErrorStatus=0x%08x",
		Data->sk, Data->name, Address, Data->namelen, Data->lpCallerData, 
		Data->lpCalleeData, Data->lpSQOS, Data->lpGQOS, Data->ReturnValue, Data->Status);

	return S_OK;
}
Ejemplo n.º 14
0
ULONG
WSAAcceptDecode(
	IN PBTR_FILTER_RECORD Record,
	IN ULONG MaxCount,
	OUT PWCHAR Buffer
	)
{
	PSK_WSAACCEPT Data;
	CHAR Address[MAX_PATH];

	if (Record->ProbeOrdinal != _WSAAccept) {
		return S_FALSE;
	}	

	Data = (PSK_WSAACCEPT)Record->Data;

	if (Data->addr) {
		StringCchPrintfA(Address, MAX_PATH - 1, "%S:%d", 
			inet_ntoa(Data->Address.sin_addr), ntohs(Data->Address.sin_port));
	} else {
		Address[0] = 0;
	}

	StringCchPrintf(Buffer, MaxCount - 1, 
		L"socket=%d, addr=0x%p (%S), addrlen=0x%p (%d), lpfnCondition=0x%p, dwCallbackData=0x%d,"
		L"return=%d, LastErrorStatus=0x%08x",
		Data->sk, Data->addr, Address, Data->addrlen, Data->AddressLength, 
		Data->ReturnValue, Data->Status);

	return S_OK;
}
Ejemplo n.º 15
0
	LONG WINAPI GenerateDump(EXCEPTION_POINTERS* pExceptionPointers)
	{
		BOOL bMiniDumpSuccessful;
		CHAR szFileName[MAX_PATH]; 
		CHAR* szAppName = (CHAR *)Name.c_str();
		CHAR* szVersion = (CHAR *)Version.c_str();
		DWORD dwBufferSize = MAX_PATH;
		HANDLE hDumpFile;
		SYSTEMTIME stLocalTime;
		MINIDUMP_EXCEPTION_INFORMATION ExpParam;

		GetLocalTime(&stLocalTime);

		StringCchPrintfA(szFileName, MAX_PATH, "%s_%s-%04d%02d%02d-%02d%02d%02d-%ld-%ld.dmp", 
			szAppName, szVersion, stLocalTime.wYear, stLocalTime.wMonth, stLocalTime.wDay, 
			stLocalTime.wHour, stLocalTime.wMinute, stLocalTime.wSecond, GetCurrentProcessId(), GetCurrentThreadId());
		hDumpFile = CreateFileA(szFileName, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_WRITE|FILE_SHARE_READ, 0, CREATE_ALWAYS, 0, 0);

		ExpParam.ThreadId = GetCurrentThreadId();
		ExpParam.ExceptionPointers = pExceptionPointers;
		ExpParam.ClientPointers = TRUE;

		bMiniDumpSuccessful = MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), 
			hDumpFile, MiniDumpWithDataSegs, &ExpParam, NULL, NULL);

		return EXCEPTION_EXECUTE_HANDLER;
	}
Ejemplo n.º 16
0
DWORD FileGroupDelete(INT32 groupId)
{
    CHAR    *path;
    CHAR    buffer[12];
    DWORD   result;

    ASSERT(groupId != -1);
    TRACE("groupId=%d", groupId);

    // Retrieve group file location
    StringCchPrintfA(buffer, ELEMENT_COUNT(buffer), "%i", groupId);
    path = Io_ConfigGetPath("Locations", "Group_Files", buffer, NULL);
    if (path == NULL) {
        TRACE("Unable to retrieve file location.");
        return ERROR_NOT_ENOUGH_MEMORY;
    }

    // Delete group file and free resources
    if (DeleteFileA(path)) {
        result = ERROR_SUCCESS;
    } else {
        result = GetLastError();
        TRACE("Unable to delete file \"%s\" (error %lu).", path, result);
    }

    Io_Free(path);
    return result;
}
Ejemplo n.º 17
0
/*
 * TclSetWinError
 *
 *   Sets the interpreter's errorCode variable.
 *
 * Arguments:
 *   interp    - Current interpreter.
 *   errorCode - Windows error code.
 *
 * Returns:
 *   The message that is associated with the error code.
 */
char *
TclSetWinError(
    Tcl_Interp *interp,
    DWORD errorCode
    )
{
    char errorId[12];
    ThreadSpecificData *tsdPtr = TCL_TSD_INIT(&dataKey);

    StringCchPrintfA(errorId, ARRAYSIZE(errorId), "%lu", errorCode);

    if (FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM,
        NULL,
        errorCode,
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
        tsdPtr->message,
        ARRAYSIZE(tsdPtr->message),
        NULL) == 0) {
        StringCchCopyA(tsdPtr->message, ARRAYSIZE(tsdPtr->message), "unknown error");
    } else {
        size_t length;
        StringCchLengthA(tsdPtr->message, ARRAYSIZE(tsdPtr->message), &length);

        /* Remove trailing CR/LF. */
        if (length >= 2 && tsdPtr->message[length-2] == '\r' && tsdPtr->message[length-1] == '\n') {
            tsdPtr->message[length-2] = '\0';
        }
    }

    Tcl_SetErrorCode(interp, "WINDOWS", errorId, tsdPtr->message, NULL);
    return tsdPtr->message;
}
int _RosLogDebug (
    ULONG Level
)
{
    static PCSTR levelDescriptions[] = {
        "[%s]",              // TRACE_LEVEL_NONE
        "critical error",    // TRACE_LEVEL_CRITICAL
        "noncritical error", // TRACE_LEVEL_ERROR
        "warning",          // TRACE_LEVEL_WARNING
        "information",       // TRACE_LEVEL_INFORMATION
        "trace"              // TRACE_LEVEL_VERBOSE
    }; // levelDescriptions

    volatile void* returnAddress = _ReturnAddress();
    volatile PCSTR levelDescriptionSz =
        levelDescriptions[(Level < ARRAYSIZE(levelDescriptions)) ? Level : 0];
    char buf[64];
    HRESULT hr = StringCchPrintfA(
                     buf,
                     ARRAYSIZE(buf),
                     "\n*** ROSUMD %s detected @%p.\n",
                     levelDescriptionSz,
                     returnAddress);

    if (SUCCEEDED(hr)) {
        OutputDebugStringA(buf);
    }

    DbgRaiseAssertionFailure();

    return 1;
} // _RosLogDebug (...)
Ejemplo n.º 19
0
/*!
	親ID指定してリストアップ
	@param[in]	dPrntID	親ID
	@param[in]	tgtID	この番号を超えて最初にヒットしたやつを返す
	@param[out]	pType	ディレクトリ(FILE_ATTRIBUTE_DIRECTORY)かファイルか(FILE_ATTRIBUTE_NORMAL)
	@param[out]	ptName	ノードの名称
	@return	UINT	引っ張ったやつのID・無かったら0
*/
UINT SqlChildNodePickUpID( UINT dPrntID, UINT tgtID, PUINT pType, LPTSTR ptName )
{
	CHAR	acQuery[MAX_PATH];
	INT		rslt;
	UINT	id = 0, dummy;
	sqlite3_stmt*	statement;

	StringCchPrintfA( acQuery, MAX_PATH, ("SELECT * FROM TreeNode WHERE parentid == %u AND id > %u ORDER BY id ASC"), dPrntID, tgtID );

	rslt = sqlite3_prepare( gpDataBase, acQuery, -1, &statement, NULL );
	if( SQLITE_OK != rslt ){	SQL_DEBUG( gpDataBase );	return 0;	}
	sqlite3_reset( statement );
	rslt = sqlite3_step( statement );
	if( SQLITE_ROW == rslt )
	{
		id     = sqlite3_column_int( statement, 0 );	//	id
		*pType = sqlite3_column_int( statement, 1 );	//	type
		dummy  = sqlite3_column_int( statement, 2 );	//	parentid
		String_Cch_Copy( ptName, MAX_PATH, (LPCTSTR)sqlite3_column_text16( statement, 3 ) );	//	nodename
	}

	sqlite3_finalize( statement );

	return id;
}
Ejemplo n.º 20
0
/*!
	IDを指定してデータゲット
	@param[in]	id			検索するID
	@param[out]	ptFilePath	ファイルパスバッファ・MAX_PATHであること
	@param[out]	ptBaseName	ルート直下のディレクトリ名バッファ・MAX_PATHであること
	@param[in]	ptDispName	タブの表示名・MAX_PATHであること
	@return	UINT	引っ張ったヤツのID番号・ヒットしなかったら0
*/
UINT SqlMultiTabSelect( INT id, LPTSTR ptFilePath, LPTSTR ptBaseName, LPTSTR ptDispName )
{
	CHAR	acQuery[MAX_STRING];
	INT		rslt;
	UINT	index = 0;
	sqlite3_stmt*	statement;


	if( !(gpDataBase) ){	return 0;	}

	StringCchPrintfA( acQuery, MAX_STRING, ("SELECT * FROM MultiTab WHERE id == %d"), id );

	rslt = sqlite3_prepare( gpDataBase, acQuery, -1, &statement, NULL );
	if( SQLITE_OK != rslt ){	SQL_DEBUG( gpDataBase );	return 0;	}

	rslt = sqlite3_step( statement );
	if( SQLITE_ROW == rslt )
	{
		index = sqlite3_column_int( statement , 0 );	//	id
		String_Cch_Copy( ptFilePath, MAX_PATH, (LPCTSTR)sqlite3_column_text16( statement, 1 ) );	//	filepath
		String_Cch_Copy( ptBaseName, MAX_PATH, (LPCTSTR)sqlite3_column_text16( statement, 2 ) );	//	basename
		String_Cch_Copy( ptDispName, MAX_PATH, (LPCTSTR)sqlite3_column_text16( statement, 3 ) );	//	dispname
	}

	sqlite3_finalize( statement );

	return index;
}
Ejemplo n.º 21
0
ULONG
WSASendToDecode(
	IN PBTR_FILTER_RECORD Record,
	IN ULONG MaxCount,
	OUT PWCHAR Buffer
	)
{
	PSK_WSASENDTO Data;
	CHAR Address[MAX_PATH];

	if (Record->ProbeOrdinal != _WSASendTo) {
		return S_FALSE;
	}	

	Data = (PSK_WSASENDTO)Record->Data;

	if (Data->lpTo) {
		StringCchPrintfA(Address, MAX_PATH - 1, "%S:%d", 
			inet_ntoa(Data->Address.sin_addr), ntohs(Data->Address.sin_port));
	} else {
		Address[0] = 0;
	}

	StringCchPrintf(Buffer, MaxCount - 1, 
		L"socket=%d, lpBuffers=0x%p, dwBufferCount=%d, lpNumberOfBytesSent=0x%p (%d), dwFlags=0x%08x,"
		L"lpTo=0x%p (%S), iToLen=%d, lpOverlapped=0x%p, lpCompletionRoutine=0x%p, return=%d, LastErrorStatus=0x%08x",
		Data->s, Data->lpBuffers, Data->dwBufferCount, Data->lpNumberOfBytesSent, Data->NumberOfBytesSent, 
		Data->dwFlags, Data->lpTo, Address, Data->iToLen, Data->lpOverlapped, 
		Data->lpCompletionRoutine, Data->ReturnValue, Data->Status);

	return S_OK;
}
Ejemplo n.º 22
0
ULONG
WSARecvFromDecode(
	IN PBTR_FILTER_RECORD Record,
	IN ULONG MaxCount,
	OUT PWCHAR Buffer
	)
{
	PSK_WSARECVFROM Data;
	CHAR Address[MAX_PATH];

	if (Record->ProbeOrdinal != _WSARecvFrom) {
		return S_FALSE;
	}	

	Data = (PSK_WSARECVFROM)Record->Data;

	if (Data->lpFrom) {
		StringCchPrintfA(Address, MAX_PATH - 1, "%S:%d", 
			inet_ntoa(Data->Address.sin_addr), ntohs(Data->Address.sin_port));
	} else {
		Address[0] = 0;
	}

	StringCchPrintf(Buffer, MaxCount - 1, 
		L"socket=%d, lpBuffers=0x%p, lpNumberOfBytesRecvd=0x%p (%d), lpFlags=0x%p (%d),"
		L"lpFrom=0x%p (%S), lpFromLen=0x%p (%d), lpOverlapped=0x%p, lpCompletionRoutine=0x%p, return=%d, LastErrorStatus=0x%08x",
		Data->sk, Data->lpBuffer, Data->lpNumberOfBytesRecvd, Data->NumberOfBytesRecvd, 
		Data->lpFlags, Data->Flags, Data->lpFrom, Address, Data->lpFromLen, Data->AddressLength,
		Data->lpOverlapped, Data->lpCompletionRoutine, Data->ReturnValue, Data->Status);

	return S_OK;
}
/*
 * SendHttpResponse sends a text/html content type back with
 * the user specified status code and reason.  Used for returning
 * errors to clients.
 */
DWORD
SendHttpResponse(
    IN HANDLE        hReqQueue,
    IN PHTTP_REQUEST pRequest,
    IN USHORT        StatusCode,
    IN PSTR          pReason,
    IN PSTR          pEntityString
    )
{
    HTTP_RESPONSE   response;
    HTTP_DATA_CHUNK dataChunk;
    DWORD           result;
    DWORD           bytesSent;
    CHAR            szServerHeader[20];

    // Initialize the HTTP response structure.
    INITIALIZE_HTTP_RESPONSE(&response, StatusCode, pReason);

    ADD_KNOWN_HEADER(response, HttpHeaderContentType, "text/html");
    
    StringCchPrintfA(szServerHeader, sizeof(szServerHeader), "Xmlrpc-c/%s",
                     XMLRPC_C_VERSION);
    ADD_KNOWN_HEADER(response, HttpHeaderServer, szServerHeader);
   
    if(pEntityString)
    {
        // Add an entity chunk
        dataChunk.DataChunkType           = HttpDataChunkFromMemory;
        dataChunk.FromMemory.pBuffer      = pEntityString;
        dataChunk.FromMemory.BufferLength = (ULONG) strlen(pEntityString);

        response.EntityChunkCount         = 1;
        response.pEntityChunks            = &dataChunk;
    }

    // Since we are sending all the entity body in one call, we don't have 
    // to specify the Content-Length.
    result = HttpSendHttpResponse(
        hReqQueue,           // ReqQueueHandle
        pRequest->RequestId, // Request ID
        0,                   // Flags
        &response,           // HTTP response
        NULL,                // pReserved1
        &bytesSent,          // bytes sent   (OPTIONAL)
        NULL,                // pReserved2   (must be NULL)
        0,                   // Reserved3    (must be 0)
        NULL,                // LPOVERLAPPED (OPTIONAL)
        NULL                 // pReserved4   (must be NULL)
        );

    if(result != NO_ERROR)
    {
        TraceW(L"HttpSendHttpResponse failed with %lu", result);
    }

    return result;
}
Ejemplo n.º 24
0
UINT World::preloadDialogs()
{
    char scriptCommand[512];
    ConstCharList dialogNameList;
    StringCchPrintfA( scriptCommand, 512, "%s::dialogNameList", m_worldName );
    GetScriptManager().readCharPtrList( scriptCommand, dialogNameList );

    ConstCharList::iterator itDlg = dialogNameList.begin();
    for ( ; itDlg != dialogNameList.end(); ++itDlg )
    {
        StringCchPrintfA( scriptCommand, 512, "%s::%s", m_worldName, *itDlg );
        Dialog* newDlg = Dialog::createDialogByScript( scriptCommand );
        newDlg->init();
        addDialog( newDlg );
    }

    return dialogNameList.size();
}
Ejemplo n.º 25
0
/*++

TclNewOctalObj

    Creates a new object from an octal value.

Arguments:
    octal   - The octal value to use.

Return Value:
    A pointer to a newly created object.

--*/
Tcl_Obj *
TclNewOctalObj(
    unsigned long octal
    )
{
    char value[12];
    StringCchPrintfA(value, ARRAYSIZE(value), "%03lo", octal);
    return Tcl_NewStringObj(value, -1);
}
Ejemplo n.º 26
0
/********************************************************************
 WcaLog() - outputs trace and log info

*******************************************************************/
extern "C" void __cdecl WcaLog(
    __in LOGLEVEL llv,
    __in_z __format_string PCSTR fmt, 
    ...
    )
{
    static char szFmt[LOG_BUFFER];
    static char szBuf[LOG_BUFFER];
    static bool fInLogPrint = false;

    // prevent re-entrant logprints.  (recursion issues between assert/logging code)
    if (fInLogPrint)
        return;
    fInLogPrint = true;

    if (LOGMSG_STANDARD == llv || 
        (LOGMSG_VERBOSE == llv && IsVerboseLoggingLite())
#ifdef DEBUG
        || LOGMSG_TRACEONLY == llv
#endif
        )
    {
        va_list args;
        va_start(args, fmt);

        LPCSTR szLogName = WcaGetLogName();
        if (szLogName[0] != 0)
            StringCchPrintfA(szFmt, countof(szFmt), "%s:  %s", szLogName, fmt);
        else
            StringCchCopyA(szFmt, countof(szFmt), fmt);

        StringCchVPrintfA(szBuf, countof(szBuf), szFmt, args);
        va_end(args);

#ifdef DEBUG
        // always write to the log in debug
#else
        if (llv == LOGMSG_STANDARD || (llv == LOGMSG_VERBOSE && IsVerboseLoggingLite()))
#endif
        {
            PMSIHANDLE hrec = MsiCreateRecord(1);

            ::MsiRecordSetStringA(hrec, 0, szBuf);
            // TODO:  Recursion on failure.  May not be safe to assert from here.
            WcaProcessMessage(INSTALLMESSAGE_INFO, hrec);
        }

#if DEBUG
        StringCchCatA(szBuf, countof(szBuf), "\n");
        OutputDebugStringA(szBuf);
#endif
    }

    fInLogPrint = false;
    return;
}
Ejemplo n.º 27
0
VOID SCALL LogFileTraceV(const CHAR *file, const CHAR *func, INT line, const CHAR *format, va_list argList)
{
#if 0
    CHAR        location[MAX_PATH];
#endif
    CHAR        *messageEnd;
    DWORD       errorCode;
    DWORD       processId;
    DWORD       threadId;
    LOG_ENTRY   *entry;
    size_t      remaining;

    // Preserve system error code
    errorCode = GetLastError();

    ASSERT(file != NULL);
    ASSERT(func != NULL);
    ASSERT(format != NULL);

    processId = GetCurrentProcessId();
    threadId  = GetCurrentThreadId();

    // Retrieve a spare entry structure (also checks log status)
    entry = GetSpareEntry();
    if (entry != NULL) {
        //
        // Available trace information:
        //
        // file      - Source file
        // func      - Function name in the source file
        // line      - Line number in the source file
        // processId - Current process ID
        // threadId  - Current thread ID
        //
        GetLocalTime(&entry->time);

#if 0
        StringCchPrintfA(location, ELEMENT_COUNT(location), "%s:%d", LogFileName(file), line);

        StringCchPrintfExA(entry->message, ELEMENT_COUNT(entry->message),
            &messageEnd, &remaining, 0, "%-20s - %-20s - ", location, func);
#else
        StringCchPrintfExA(entry->message, ELEMENT_COUNT(entry->message),
            &messageEnd, &remaining, 0, "%s - ", func);
#endif
        StringCchVPrintfExA(messageEnd, remaining, NULL, &remaining, 0, format, argList);

        entry->length = ELEMENT_COUNT(entry->message) - remaining;

        // Insert log entry into the write queue
        QueueInsert(entry);
    }

    // Restore system error code
    SetLastError(errorCode);
}
Ejemplo n.º 28
0
	unsigned int __declspec(dllexport) GetAudioTypes3(int idx, char *desc)
	{
		if (idx == 0)
		{
			GetLocalisationApiService();
			StringCchPrintfA(desc, 1024, WASABI_API_LNGSTRING(IDS_ENC_TTA_DESC), VERSION, LIBTTA_VERSION);
			return mmioFOURCC('T', 'T', 'A', ' ');
		}
		return 0;
	}
Ejemplo n.º 29
0
void DebugMsg(const CHAR* pszFormat, ...)
{
    CHAR buf[1024];
    StringCchPrintfA(buf, sizeof(buf)/sizeof(CHAR), "(%lu): ", GetCurrentThreadId());
		va_list arglist;
		va_start(arglist, pszFormat);
		StringCchVPrintfA(&buf[strlen(buf)], sizeof(buf)/sizeof(CHAR), pszFormat, arglist);
		va_end(arglist);
    StringCchCatA(buf, sizeof(buf)/sizeof(CHAR), "\n");
	OutputDebugStringA(buf);
}
Ejemplo n.º 30
0
int WINAPI D3DXDebugAssert(LPCSTR szFile, int nLine, LPCSTR szCondition)
{
    char str[512];

    // Print message to debug console
    StringCchPrintfA(str, sizeof(str), "Assertion failure! (%s %d): %s\r\n", szFile, nLine, szCondition);
    str[511] = 0;
    OutputDebugStringA(str);

    return 0;
}