| Index: third_party/npapi/npspy/common/format.cpp
|
| diff --git a/third_party/npapi/npspy/common/format.cpp b/third_party/npapi/npspy/common/format.cpp
|
| deleted file mode 100644
|
| index 8135669ae23b3cda485b17053c37abf61d189b9b..0000000000000000000000000000000000000000
|
| --- a/third_party/npapi/npspy/common/format.cpp
|
| +++ /dev/null
|
| @@ -1,1097 +0,0 @@
|
| -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
| -/* ***** BEGIN LICENSE BLOCK *****
|
| - * Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
| - *
|
| - * The contents of this file are subject to the Mozilla Public License Version
|
| - * 1.1 (the "License"); you may not use this file except in compliance with
|
| - * the License. You may obtain a copy of the License at
|
| - * http://www.mozilla.org/MPL/
|
| - *
|
| - * Software distributed under the License is distributed on an "AS IS" basis,
|
| - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
| - * for the specific language governing rights and limitations under the
|
| - * License.
|
| - *
|
| - * The Original Code is mozilla.org code.
|
| - *
|
| - * The Initial Developer of the Original Code is
|
| - * Netscape Communications Corporation.
|
| - * Portions created by the Initial Developer are Copyright (C) 1998
|
| - * the Initial Developer. All Rights Reserved.
|
| - *
|
| - * Contributor(s):
|
| - *
|
| - * Alternatively, the contents of this file may be used under the terms of
|
| - * either the GNU General Public License Version 2 or later (the "GPL"), or
|
| - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
| - * in which case the provisions of the GPL or the LGPL are applicable instead
|
| - * of those above. If you wish to allow use of your version of this file only
|
| - * under the terms of either the GPL or the LGPL, and not to allow others to
|
| - * use your version of this file under the terms of the MPL, indicate your
|
| - * decision by deleting the provisions above and replace them with the notice
|
| - * and other provisions required by the GPL or the LGPL. If you do not delete
|
| - * the provisions above, a recipient may use your version of this file under
|
| - * the terms of any one of the MPL, the GPL or the LGPL.
|
| - *
|
| - * ***** END LICENSE BLOCK ***** */
|
| -
|
| -#include <string>
|
| -#include <vector>
|
| -#include <errno.h>
|
| -
|
| -
|
| -#include "xp.h"
|
| -
|
| -#include "format.h"
|
| -#include "logger.h"
|
| -
|
| -extern Logger * logger;
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -// From Google Chrome's string_util.cc
|
| -
|
| -// It's possible for functions that use a va_list, such as StringPrintf, to
|
| -// invalidate the data in it upon use. The fix is to make a copy of the
|
| -// structure before using it and use that copy instead. va_copy is provided
|
| -// for this purpose. MSVC does not provide va_copy, so define an
|
| -// implementation here. It is not guaranteed that assignment is a copy, so the
|
| -// StringUtil.__GNUC__ unit test tests this capability.
|
| -#if defined(COMPILER_GCC)
|
| -#define GG_VA_COPY(a, b) (va_copy(a, b))
|
| -#elif defined(_MSC_VER)
|
| -#define GG_VA_COPY(a, b) (a = b)
|
| -#endif
|
| -
|
| -
|
| -// The arraysize(arr) macro returns the # of elements in an array arr.
|
| -// The expression is a compile-time constant, and therefore can be
|
| -// used in defining new arrays, for example. If you use arraysize on
|
| -// a pointer by mistake, you will get a compile-time error.
|
| -//
|
| -// One caveat is that arraysize() doesn't accept any array of an
|
| -// anonymous type or a type defined inside a function. In these rare
|
| -// cases, you have to use the unsafe ARRAYSIZE_UNSAFE() macro below. This is
|
| -// due to a limitation in C++'s template system. The limitation might
|
| -// eventually be removed, but it hasn't happened yet.
|
| -
|
| -// This template function declaration is used in defining arraysize.
|
| -// Note that the function doesn't need an implementation, as we only
|
| -// use its type.
|
| -template <typename T, size_t N>
|
| -char (&ArraySizeHelper(T (&array)[N]))[N];
|
| -
|
| -// That gcc wants both of these prototypes seems mysterious. VC, for
|
| -// its part, can't decide which to use (another mystery). Matching of
|
| -// template overloads: the final frontier.
|
| -#ifndef _MSC_VER
|
| -template <typename T, size_t N>
|
| -char (&ArraySizeHelper(const T (&array)[N]))[N];
|
| -#endif
|
| -
|
| -#define arraysize(array) (sizeof(ArraySizeHelper(array)))
|
| -
|
| -#if defined(_WIN32)
|
| -inline int vsnprintf(char* buffer, size_t size,
|
| - const char* format, va_list arguments) {
|
| - int length = vsnprintf_s(buffer, size, size - 1, format, arguments);
|
| - if (length < 0)
|
| - return _vscprintf(format, arguments);
|
| - return length;
|
| -}
|
| -#else
|
| -inline int vsnprintf(char* buffer, size_t size,
|
| - const char* format, va_list arguments) {
|
| - return ::vsnprintf(buffer, size, format, arguments);
|
| -}
|
| -#endif
|
| -
|
| -
|
| -// Templatized backend for StringPrintF/StringAppendF. This does not finalize
|
| -// the va_list, the caller is expected to do that.
|
| -template <class StringType>
|
| -static void StringAppendVT(StringType* dst,
|
| - const typename StringType::value_type* format,
|
| - va_list ap) {
|
| - // First try with a small fixed size buffer.
|
| - // This buffer size should be kept in sync with StringUtilTest.GrowBoundary
|
| - // and StringUtilTest.StringPrintfBounds.
|
| - typename StringType::value_type stack_buf[1024];
|
| -
|
| - va_list ap_copy;
|
| - GG_VA_COPY(ap_copy, ap);
|
| -
|
| -#if !defined(_WIN32)
|
| - errno = 0;
|
| -#endif
|
| - int result = vsnprintf(stack_buf, arraysize(stack_buf), format, ap_copy);
|
| - va_end(ap_copy);
|
| -
|
| - if (result >= 0 && result < static_cast<int>(arraysize(stack_buf))) {
|
| - // It fit.
|
| - dst->append(stack_buf, result);
|
| - return;
|
| - }
|
| -
|
| - // Repeatedly increase buffer size until it fits.
|
| - int mem_length = arraysize(stack_buf);
|
| - while (true) {
|
| - if (result < 0) {
|
| -#if !defined(_WIN32)
|
| - // On Windows, vsnprintf always returns the number of characters in a
|
| - // fully-formatted string, so if we reach this point, something else is
|
| - // wrong and no amount of buffer-doubling is going to fix it.
|
| - if (errno != 0 && errno != EOVERFLOW)
|
| -#endif
|
| - {
|
| - // If an error other than overflow occurred, it's never going to work.
|
| - return;
|
| - }
|
| - // Try doubling the buffer size.
|
| - mem_length *= 2;
|
| - } else {
|
| - // We need exactly "result + 1" characters.
|
| - mem_length = result + 1;
|
| - }
|
| -
|
| - if (mem_length > 32 * 1024 * 1024) {
|
| - // That should be plenty, don't try anything larger. This protects
|
| - // against huge allocations when using vsnprintf implementations that
|
| - // return -1 for reasons other than overflow without setting errno.
|
| - return;
|
| - }
|
| -
|
| - std::vector<typename StringType::value_type> mem_buf(mem_length);
|
| -
|
| - // NOTE: You can only use a va_list once. Since we're in a while loop, we
|
| - // need to make a new copy each time so we don't use up the original.
|
| - GG_VA_COPY(ap_copy, ap);
|
| - result = vsnprintf(&mem_buf[0], mem_length, format, ap_copy);
|
| - va_end(ap_copy);
|
| -
|
| - if ((result >= 0) && (result < mem_length)) {
|
| - // It fit.
|
| - dst->append(&mem_buf[0], result);
|
| - return;
|
| - }
|
| - }
|
| -}
|
| -
|
| -std::string StringPrintf(const char* format, ...) {
|
| - va_list ap;
|
| - va_start(ap, format);
|
| - std::string result;
|
| - StringAppendVT(&result, format, ap);
|
| - va_end(ap);
|
| - return result;
|
| -}
|
| -
|
| -////////////////////////////////////////////////////////////////////////////////
|
| -
|
| -
|
| -char * FormatNPAPIError(int iError)
|
| -{
|
| - static char szError[64];
|
| - switch (iError)
|
| - {
|
| - case NPERR_NO_ERROR:
|
| - sprintf(szError, "NPERR_NO_ERROR");
|
| - break;
|
| - case NPERR_GENERIC_ERROR:
|
| - sprintf(szError, "NPERR_GENERIC_ERROR");
|
| - break;
|
| - case NPERR_INVALID_INSTANCE_ERROR:
|
| - sprintf(szError, "NPERR_INVALID_INSTANCE_ERROR");
|
| - break;
|
| - case NPERR_INVALID_FUNCTABLE_ERROR:
|
| - sprintf(szError, "NPERR_INVALID_FUNCTABLE_ERROR");
|
| - break;
|
| - case NPERR_MODULE_LOAD_FAILED_ERROR:
|
| - sprintf(szError, "NPERR_MODULE_LOAD_FAILED_ERROR");
|
| - break;
|
| - case NPERR_OUT_OF_MEMORY_ERROR:
|
| - sprintf(szError, "NPERR_OUT_OF_MEMORY_ERROR");
|
| - break;
|
| - case NPERR_INVALID_PLUGIN_ERROR:
|
| - sprintf(szError, "NPERR_INVALID_PLUGIN_ERROR");
|
| - break;
|
| - case NPERR_INVALID_PLUGIN_DIR_ERROR:
|
| - sprintf(szError, "NPERR_INVALID_PLUGIN_DIR_ERROR");
|
| - break;
|
| - case NPERR_INCOMPATIBLE_VERSION_ERROR:
|
| - sprintf(szError, "NPERR_INCOMPATIBLE_VERSION_ERROR");
|
| - break;
|
| - case NPERR_INVALID_PARAM:
|
| - sprintf(szError, "NPERR_INVALID_PARAM");
|
| - break;
|
| - case NPERR_INVALID_URL:
|
| - sprintf(szError, "NPERR_INVALID_URL");
|
| - break;
|
| - case NPERR_FILE_NOT_FOUND:
|
| - sprintf(szError, "NPERR_FILE_NOT_FOUND");
|
| - break;
|
| - case NPERR_NO_DATA:
|
| - sprintf(szError, "NPERR_NO_DATA");
|
| - break;
|
| - case NPERR_STREAM_NOT_SEEKABLE:
|
| - sprintf(szError, "NPERR_STREAM_NOT_SEEKABLE");
|
| - break;
|
| - default:
|
| - sprintf(szError, "Unlisted error");
|
| - break;
|
| - }
|
| - return &szError[0];
|
| -}
|
| -
|
| -char * FormatNPAPIReason(int iReason)
|
| -{
|
| - static char szReason[64];
|
| - switch (iReason)
|
| - {
|
| - case NPRES_DONE:
|
| - sprintf(szReason, "NPRES_DONE");
|
| - break;
|
| - case NPRES_NETWORK_ERR:
|
| - sprintf(szReason, "NPRES_NETWORK_ERR");
|
| - break;
|
| - case NPRES_USER_BREAK:
|
| - sprintf(szReason, "NPRES_USER_BREAK");
|
| - break;
|
| - default:
|
| - sprintf(szReason, "Unlisted reason");
|
| - break;
|
| - }
|
| - return &szReason[0];
|
| -}
|
| -
|
| -char * FormatNPNVariable(NPNVariable var)
|
| -{
|
| - static char szVar[80];
|
| - switch (var)
|
| - {
|
| - case NPNVxDisplay:
|
| - sprintf(szVar, "%i -- NPNVxDisplay", var);
|
| - break;
|
| - case NPNVxtAppContext:
|
| - sprintf(szVar, "%i -- NPNVxtAppContext", var);
|
| - break;
|
| - case NPNVnetscapeWindow:
|
| - sprintf(szVar, "%i -- NPNVnetscapeWindow", var);
|
| - break;
|
| - case NPNVjavascriptEnabledBool:
|
| - sprintf(szVar, "%i -- NPNVjavascriptEnabledBool", var);
|
| - break;
|
| - case NPNVasdEnabledBool:
|
| - sprintf(szVar, "%i -- NPNVasdEnabledBool", var);
|
| - break;
|
| - case NPNVisOfflineBool:
|
| - sprintf(szVar, "%i -- NPNVisOfflineBool", var);
|
| - break;
|
| - default:
|
| - sprintf(szVar, "%i -- Unlisted variable", var);
|
| - break;
|
| - }
|
| - return &szVar[0];
|
| -}
|
| -
|
| -char * FormatNPPVariable(NPPVariable var)
|
| -{
|
| - static char szVar[80];
|
| - switch (var)
|
| - {
|
| - case NPPVpluginNameString:
|
| - sprintf(szVar, "%i -- NPPVpluginNameString", var);
|
| - break;
|
| - case NPPVpluginDescriptionString:
|
| - sprintf(szVar, "%i -- NPPVpluginDescriptionString?", var);
|
| - break;
|
| - case NPPVpluginWindowBool:
|
| - sprintf(szVar, "%i -- NPPVpluginWindowBool?", var);
|
| - break;
|
| - case NPPVpluginTransparentBool:
|
| - sprintf(szVar, "%i -- NPPVpluginTransparentBool?", var);
|
| - break;
|
| - case NPPVjavaClass:
|
| - sprintf(szVar, "%i -- NPPVjavaClass?", var);
|
| - break;
|
| - case NPPVpluginWindowSize:
|
| - sprintf(szVar, "%i -- NPPVpluginWindowSize?", var);
|
| - break;
|
| - case NPPVpluginTimerInterval:
|
| - sprintf(szVar, "%i -- NPPVpluginTimerInterval?", var);
|
| - break;
|
| - case NPPVpluginScriptableInstance:
|
| - sprintf(szVar, "%i -- NPPVpluginScriptableInstance?", var);
|
| - break;
|
| - case NPPVpluginScriptableIID:
|
| - sprintf(szVar, "%i -- NPPVpluginScriptableIID?", var);
|
| - break;
|
| - default:
|
| - sprintf(szVar, "%i -- Unlisted variable?", var);
|
| - break;
|
| - }
|
| - return &szVar[0];
|
| -}
|
| -
|
| -BOOL FormatPCHARArgument(char * szBuf, int iLength, LogArgumentStruct * parg)
|
| -{
|
| - if(iLength <= parg->iLength)
|
| - return FALSE;
|
| -
|
| - if(parg->pData == NULL)
|
| - sprintf(szBuf, "%#08lx", parg->dwArg);
|
| - else
|
| - sprintf(szBuf, "%#08lx(\"%s\")", parg->dwArg, (char *)parg->pData);
|
| - return TRUE;
|
| -}
|
| -
|
| -BOOL FormatBOOLArgument(char * szBuf, int iLength, LogArgumentStruct * parg)
|
| -{
|
| - if(iLength <= 8)
|
| - return FALSE;
|
| -
|
| - sprintf(szBuf, "%s", ((NPBool)parg->dwArg == TRUE) ? "TRUE" : "FALSE");
|
| - return TRUE;
|
| -}
|
| -
|
| -BOOL FormatPBOOLArgument(char * szBuf, int iLength, LogArgumentStruct * parg)
|
| -{
|
| - if(iLength <= 8)
|
| - return FALSE;
|
| -
|
| - sprintf(szBuf, "%#08lx(%s)", parg->dwArg, (*((NPBool *)parg->pData) == TRUE) ? "TRUE" : "FALSE");
|
| - return TRUE;
|
| -}
|
| -
|
| -static void makeAbbreviatedString(char * szBuf, int iSize, DWORD dwArg, int iLength, int iWrap)
|
| -{
|
| - if(dwArg == 0L)
|
| - {
|
| - szBuf[0] = '\0';
|
| - return;
|
| - }
|
| -
|
| - if(iLength > iWrap)
|
| - {
|
| - int iRealWrap = (iSize > iWrap) ? iWrap : (iSize - 4);
|
| - memcpy((LPVOID)&szBuf[0], (LPVOID)dwArg, iRealWrap);
|
| - szBuf[iRealWrap] = '.';
|
| - szBuf[iRealWrap + 1] = '.';
|
| - szBuf[iRealWrap + 2] = '.';
|
| - szBuf[iRealWrap + 3] = '\0';
|
| - }
|
| - else
|
| - {
|
| - if(iLength >= iSize)
|
| - {
|
| - memcpy((LPVOID)&szBuf[0], (LPVOID)dwArg, iSize - 4);
|
| - szBuf[iSize] = '.';
|
| - szBuf[iSize + 1] = '.';
|
| - szBuf[iSize + 2] = '.';
|
| - szBuf[iSize + 3] = '\0';
|
| - }
|
| - else
|
| - {
|
| - memcpy((LPVOID)&szBuf[0], (LPVOID)dwArg, iLength);
|
| - szBuf[iLength] = '\0';
|
| - }
|
| - }
|
| -}
|
| -
|
| -LogItemStruct * makeLogItemStruct(NPAPI_Action action,
|
| - DWORD dw1, DWORD dw2, DWORD dw3, DWORD dw4,
|
| - DWORD dw5, DWORD dw6, DWORD dw7, BOOL bShort)
|
| -{
|
| - int iWrap = 64;
|
| -
|
| - LogItemStruct * plis = new LogItemStruct;
|
| - if(plis == NULL)
|
| - return NULL;
|
| -
|
| - plis->action = action;
|
| - plis->arg1.dwArg = dw1;
|
| - plis->arg2.dwArg = dw2;
|
| - plis->arg3.dwArg = dw3;
|
| - plis->arg4.dwArg = dw4;
|
| - plis->arg5.dwArg = dw5;
|
| - plis->arg6.dwArg = dw6;
|
| - plis->arg7.dwArg = dw7;
|
| -
|
| - char szTarget[1024] = {'\0'};
|
| - char szBuf[1024] = {'\0'};
|
| -
|
| - if(bShort)
|
| - return plis;
|
| -
|
| - switch (action)
|
| - {
|
| - case action_invalid:
|
| - break;
|
| -
|
| - // NPN action
|
| - case action_npn_version:
|
| - plis->arg1.pData = new int[1];
|
| - *(int*)(plis->arg1.pData) = *((int*)dw1);
|
| - plis->arg1.iLength = sizeof(int);
|
| -
|
| - plis->arg2.pData = new int[1];
|
| - *(int*)(plis->arg2.pData) = *((int*)dw2);
|
| - plis->arg2.iLength = sizeof(int);
|
| -
|
| - plis->arg3.pData = new int[1];
|
| - *(int*)(plis->arg3.pData) = *((int*)dw3);
|
| - plis->arg3.iLength = sizeof(int);
|
| -
|
| - plis->arg4.pData = new int[1];
|
| - *(int*)(plis->arg4.pData) = *((int*)dw4);
|
| - plis->arg4.iLength = sizeof(int);
|
| -
|
| - break;
|
| - case action_npn_get_url_notify:
|
| - if(dw2 != 0L)
|
| - {
|
| - plis->arg2.iLength = strlen((char *)dw2) + 1;
|
| - plis->arg2.pData = new char[plis->arg2.iLength];
|
| - memcpy(plis->arg2.pData, (LPVOID)dw2, plis->arg2.iLength);
|
| - }
|
| -
|
| - if(dw3 != 0L)
|
| - {
|
| - makeAbbreviatedString(szTarget, sizeof(szTarget), dw3, strlen((char *)dw3), iWrap);
|
| - plis->arg3.iLength = strlen(szTarget) + 1;
|
| - plis->arg3.pData = new char[plis->arg3.iLength];
|
| - memcpy(plis->arg3.pData, (LPVOID)&szTarget[0], plis->arg3.iLength);
|
| - }
|
| - break;
|
| - case action_npn_get_url:
|
| - {
|
| - if(dw2 != 0L)
|
| - {
|
| - plis->arg2.iLength = strlen((char *)dw2) + 1;
|
| - plis->arg2.pData = new char[plis->arg2.iLength];
|
| - memcpy(plis->arg2.pData, (LPVOID)dw2, plis->arg2.iLength);
|
| - }
|
| -
|
| - if(dw3 != 0L)
|
| - {
|
| - makeAbbreviatedString(szTarget, sizeof(szTarget), dw3, strlen((char *)dw3), iWrap);
|
| - plis->arg3.iLength = strlen(szTarget) + 1;
|
| - plis->arg3.pData = new char[plis->arg3.iLength];
|
| - memcpy(plis->arg3.pData, (LPVOID)&szTarget[0], plis->arg3.iLength);
|
| - }
|
| - break;
|
| - }
|
| - case action_npn_post_url_notify:
|
| - {
|
| - if(dw2 != 0L)
|
| - {
|
| - plis->arg2.iLength = strlen((char *)dw2) + 1;
|
| - plis->arg2.pData = new char[plis->arg2.iLength];
|
| - memcpy(plis->arg2.pData, (LPVOID)dw2, plis->arg2.iLength);
|
| - }
|
| -
|
| - if(dw3 != 0L)
|
| - {
|
| - makeAbbreviatedString(szTarget, sizeof(szTarget), dw3, strlen((char *)dw3), iWrap);
|
| - plis->arg3.iLength = strlen(szTarget) + 1;
|
| - plis->arg3.pData = new char[plis->arg3.iLength];
|
| - memcpy(plis->arg3.pData, (LPVOID)&szTarget[0], plis->arg3.iLength);
|
| - }
|
| -
|
| - makeAbbreviatedString(szBuf, sizeof(szBuf), dw5, strlen((char *)dw5), iWrap);
|
| - plis->arg5.iLength = (int)dw4 + 1;
|
| - plis->arg5.pData = new char[plis->arg5.iLength];
|
| - memcpy(plis->arg5.pData, (LPVOID)&szBuf[0], plis->arg5.iLength);
|
| -
|
| - break;
|
| - }
|
| - case action_npn_post_url:
|
| - {
|
| - if(dw2 != 0L)
|
| - {
|
| - plis->arg2.iLength = strlen((char *)dw2) + 1;
|
| - plis->arg2.pData = new char[plis->arg2.iLength];
|
| - memcpy(plis->arg2.pData, (LPVOID)dw2, plis->arg2.iLength);
|
| - }
|
| -
|
| - if(dw3 != 0L)
|
| - {
|
| - makeAbbreviatedString(szTarget, sizeof(szTarget), dw3, strlen((char *)dw3), iWrap);
|
| - plis->arg3.iLength = strlen(szTarget) + 1;
|
| - plis->arg3.pData = new char[plis->arg3.iLength];
|
| - memcpy(plis->arg3.pData, (LPVOID)&szTarget[0], plis->arg3.iLength);
|
| - }
|
| -
|
| - makeAbbreviatedString(szBuf, sizeof(szBuf), dw5, strlen((char *)dw5), iWrap);
|
| - plis->arg5.iLength = (int)dw4 + 1;
|
| - plis->arg5.pData = new char[plis->arg5.iLength];
|
| - memcpy(plis->arg5.pData, (LPVOID)&szBuf[0], plis->arg5.iLength);
|
| -
|
| - break;
|
| - }
|
| - case action_npn_new_stream:
|
| - {
|
| - if(dw2 != 0L)
|
| - {
|
| - plis->arg2.iLength = strlen((char *)dw2) + 1;
|
| - plis->arg2.pData = new char[plis->arg2.iLength];
|
| - memcpy(plis->arg2.pData, (LPVOID)dw2, plis->arg2.iLength);
|
| - }
|
| -
|
| - makeAbbreviatedString(szTarget, sizeof(szTarget), dw3, strlen((char *)dw3), iWrap);
|
| - plis->arg3.iLength = strlen(szTarget) + 1;
|
| - plis->arg3.pData = new char[plis->arg3.iLength];
|
| - memcpy(plis->arg3.pData, (LPVOID)&szTarget[0], plis->arg3.iLength);
|
| -
|
| - plis->arg4.pData = new char[sizeof(DWORD)];
|
| - plis->arg4.iLength = sizeof(DWORD);
|
| - memcpy(plis->arg4.pData, (LPVOID)dw4, plis->arg4.iLength);
|
| -
|
| - break;
|
| - }
|
| - case action_npn_destroy_stream:
|
| - break;
|
| - case action_npn_request_read:
|
| - break;
|
| - case action_npn_write:
|
| - {
|
| - makeAbbreviatedString(szBuf, sizeof(szBuf), dw4, strlen((char *)dw4), iWrap);
|
| - plis->arg4.iLength = strlen(szBuf) + 1;
|
| - plis->arg4.pData = new char[plis->arg4.iLength];
|
| - memcpy(plis->arg4.pData, (LPVOID)&szBuf[0], plis->arg4.iLength);
|
| - break;
|
| - }
|
| - case action_npn_status:
|
| - if(dw2 != 0L)
|
| - {
|
| - plis->arg2.iLength = strlen((char *)dw2) + 1;
|
| - plis->arg2.pData = new char[plis->arg2.iLength];
|
| - memcpy(plis->arg2.pData, (LPVOID)dw2, plis->arg2.iLength);
|
| - }
|
| - break;
|
| - case action_npn_user_agent:
|
| - break;
|
| - case action_npn_mem_alloc:
|
| - break;
|
| - case action_npn_mem_free:
|
| - break;
|
| - case action_npn_mem_flush:
|
| - break;
|
| - case action_npn_reload_plugins:
|
| - break;
|
| - case action_npn_get_java_env:
|
| - break;
|
| - case action_npn_get_java_peer:
|
| - break;
|
| - case action_npn_get_value:
|
| - plis->arg3.iLength = sizeof(DWORD);
|
| - plis->arg3.pData = new char[plis->arg3.iLength];
|
| - memcpy(plis->arg3.pData, (LPVOID)dw3, plis->arg3.iLength);
|
| - break;
|
| - case action_npn_set_value:
|
| - if(((NPPVariable)dw2 == NPPVpluginNameString) || ((NPPVariable)dw2 == NPPVpluginDescriptionString))
|
| - {
|
| - makeAbbreviatedString(szBuf, sizeof(szBuf), dw3, strlen((char *)dw3), iWrap);
|
| - plis->arg3.iLength = strlen(szBuf) + 1;
|
| - plis->arg3.pData = new char[plis->arg3.iLength];
|
| - memcpy(plis->arg3.pData, (LPVOID)&szBuf[0], plis->arg3.iLength);
|
| - }
|
| - else if(((NPPVariable)dw2 == NPPVpluginWindowBool) || ((NPPVariable)dw2 == NPPVpluginTransparentBool))
|
| - {
|
| - plis->arg3.iLength = sizeof(NPBool);
|
| - plis->arg3.pData = new char[plis->arg3.iLength];
|
| - memcpy(plis->arg3.pData, (LPVOID)&dw3, plis->arg3.iLength);
|
| - }
|
| - else if((NPPVariable)dw2 == NPPVpluginWindowSize)
|
| - {
|
| - plis->arg3.iLength = sizeof(NPSize);
|
| - plis->arg3.pData = new char[plis->arg3.iLength];
|
| - memcpy(plis->arg3.pData, (LPVOID)dw3, plis->arg3.iLength);
|
| - }
|
| - break;
|
| - case action_npn_invalidate_rect:
|
| - {
|
| - plis->arg2.iLength = sizeof(NPRect);
|
| - plis->arg2.pData = new char[plis->arg2.iLength];
|
| - memcpy(plis->arg2.pData, (LPVOID)dw2, plis->arg2.iLength);
|
| - break;
|
| - }
|
| - case action_npn_invalidate_region:
|
| - break;
|
| - case action_npn_force_redraw:
|
| - break;
|
| -
|
| - // NPP action
|
| - case action_npp_new:
|
| - plis->arg1.iLength = strlen((char *)dw1) + 1;
|
| - plis->arg1.pData = new char[plis->arg1.iLength];
|
| - memcpy(plis->arg1.pData, (LPVOID)dw1, plis->arg1.iLength);
|
| - break;
|
| - case action_npp_destroy:
|
| - plis->arg2.iLength = sizeof(DWORD);
|
| - plis->arg2.pData = new char[plis->arg2.iLength];
|
| - memcpy(plis->arg2.pData, (LPVOID)dw2, plis->arg2.iLength);
|
| - break;
|
| - case action_npp_set_window:
|
| - plis->arg2.iLength = sizeof(NPWindow);
|
| - plis->arg2.pData = new char[plis->arg2.iLength];
|
| - memcpy(plis->arg2.pData, (LPVOID)dw2, plis->arg2.iLength);
|
| - break;
|
| - case action_npp_new_stream:
|
| - plis->arg2.iLength = strlen((char *)dw2) + 1;
|
| - plis->arg2.pData = new char[plis->arg2.iLength];
|
| - memcpy(plis->arg2.pData, (LPVOID)dw2, plis->arg2.iLength);
|
| -
|
| - plis->arg5.iLength = sizeof(uint16);
|
| - plis->arg5.pData = new char[plis->arg5.iLength];
|
| - memcpy(plis->arg5.pData, (LPVOID)dw5, plis->arg5.iLength);
|
| - break;
|
| - case action_npp_destroy_stream:
|
| - break;
|
| - case action_npp_stream_as_file:
|
| - plis->arg3.iLength = strlen((char *)dw3) + 1;
|
| - plis->arg3.pData = new char[plis->arg3.iLength];
|
| - memcpy(plis->arg3.pData, (LPVOID)dw3, plis->arg3.iLength);
|
| - break;
|
| - case action_npp_write_ready:
|
| - break;
|
| - case action_npp_write:
|
| - {
|
| - if(dw5 != 0L)
|
| - {
|
| - makeAbbreviatedString(szBuf, sizeof(szBuf), dw5, strlen((char *)dw5), iWrap);
|
| - plis->arg5.iLength = strlen(szBuf) + 1;
|
| - plis->arg5.pData = new char[plis->arg5.iLength];
|
| - memcpy(plis->arg5.pData, (LPVOID)&szBuf[0], plis->arg5.iLength);
|
| - }
|
| - break;
|
| - }
|
| - case action_npp_print:
|
| - break;
|
| - case action_npp_handle_event:
|
| - break;
|
| - case action_npp_url_notify:
|
| - plis->arg2.iLength = strlen((char *)dw2) + 1;
|
| - plis->arg2.pData = new char[plis->arg2.iLength];
|
| - memcpy(plis->arg2.pData, (LPVOID)dw2, plis->arg2.iLength);
|
| - break;
|
| - case action_npp_get_java_class:
|
| - break;
|
| - case action_npp_get_value:
|
| - break;
|
| - case action_npp_set_value:
|
| - break;
|
| -
|
| - default:
|
| - break;
|
| - }
|
| -
|
| - return plis;
|
| -}
|
| -
|
| -void freeLogItemStruct(LogItemStruct * lis)
|
| -{
|
| - if(lis)
|
| - delete lis;
|
| -}
|
| -
|
| -void formatLogItem(LogItemStruct * plis, std::string* output, BOOL bDOSStyle)
|
| -{
|
| - static char szEOL[8];
|
| - static char szEOI[256];
|
| - static char szEndOfItem[] = "";
|
| -
|
| - if(bDOSStyle)
|
| - {
|
| - strcpy(szEOL, "\r\n");
|
| - //strcpy(szEOI, szEndOfItem);
|
| - //strcat(szEOI, "\r\n");
|
| - }
|
| - else
|
| - {
|
| - strcpy(szEOL, "\n");
|
| - //strcpy(szEOI, szEndOfItem);
|
| - //strcat(szEOI, "\n");
|
| - }
|
| -
|
| - DWORD dw1 = plis->arg1.dwArg;
|
| - DWORD dw2 = plis->arg2.dwArg;
|
| - DWORD dw3 = plis->arg3.dwArg;
|
| - DWORD dw4 = plis->arg4.dwArg;
|
| - DWORD dw5 = plis->arg5.dwArg;
|
| - DWORD dw6 = plis->arg6.dwArg;
|
| - DWORD dw7 = plis->arg7.dwArg;
|
| -
|
| - char sz1[1024] = {'\0'};
|
| - char sz2[1024] = {'\0'};
|
| - char sz3[1024] = {'\0'};
|
| - char sz4[1024] = {'\0'};
|
| - char sz5[1024] = {'\0'};
|
| - char sz6[1024] = {'\0'};
|
| -
|
| - switch (plis->action)
|
| - {
|
| - case action_invalid:
|
| - break;
|
| -
|
| - // NPN action
|
| - case action_npn_version:
|
| - if((plis->arg1.pData != NULL)&&(plis->arg2.pData != NULL)&&(plis->arg3.pData != NULL)&&(plis->arg4.pData != NULL))
|
| - *output = StringPrintf("NPN_Version(%#08lx, %#08lx, %#08lx, %#08lx)", dw1,dw2,dw3,dw4);
|
| - else
|
| - *output = StringPrintf("NPN_Version(%#08lx, %#08lx, %#08lx, %#08lx)", dw1,dw2,dw3,dw4);
|
| - break;
|
| - case action_npn_get_url_notify:
|
| - {
|
| - FormatPCHARArgument(sz2, sizeof(sz2), &plis->arg2);
|
| - FormatPCHARArgument(sz3, sizeof(sz3), &plis->arg3);
|
| - *output = StringPrintf("NPN_GetURLNotify(%#08lx, %s, %s, %#08lx)", dw1,sz2,sz3,dw4);
|
| - break;
|
| - }
|
| - case action_npn_get_url:
|
| - {
|
| - FormatPCHARArgument(sz2, sizeof(sz2), &plis->arg2);
|
| - FormatPCHARArgument(sz3, sizeof(sz3), &plis->arg3);
|
| - *output = StringPrintf("NPN_GetURL(%#08lx, %s, %s)", dw1,sz2,sz3);
|
| - break;
|
| - }
|
| - case action_npn_post_url_notify:
|
| - {
|
| - FormatPCHARArgument(sz2, sizeof(sz2), &plis->arg2);
|
| - FormatPCHARArgument(sz3, sizeof(sz3), &plis->arg3);
|
| - FormatPCHARArgument(sz5, sizeof(sz5), &plis->arg5);
|
| - FormatBOOLArgument(sz6, sizeof(sz6), &plis->arg6);
|
| -
|
| - *output = StringPrintf("NPN_PostURLNotify(%#08lx, %s, %s, %li, %s, %s, %#08lx)",
|
| - dw1,sz2,sz3,(uint32)dw4,sz5,sz6,dw7);
|
| - break;
|
| - }
|
| - case action_npn_post_url:
|
| - {
|
| - FormatPCHARArgument(sz2, sizeof(sz2), &plis->arg2);
|
| - FormatPCHARArgument(sz3, sizeof(sz3), &plis->arg3);
|
| - FormatPCHARArgument(sz5, sizeof(sz5), &plis->arg5);
|
| - FormatBOOLArgument(sz6, sizeof(sz6), &plis->arg6);
|
| -
|
| - *output = StringPrintf("NPN_PostURL(%#08lx, %s, %s, %li, %s, %s)",
|
| - dw1,sz2,sz3,(uint32)dw4,sz5,sz6);
|
| - break;
|
| - }
|
| - case action_npn_new_stream:
|
| - {
|
| - FormatPCHARArgument(sz2, sizeof(sz2), &plis->arg2);
|
| - FormatPCHARArgument(sz3, sizeof(sz3), &plis->arg3);
|
| - if(plis->arg4.pData != NULL)
|
| - *output = StringPrintf("NPN_NewStream(%#08lx, %s, %s, %#08lx(%#08lx))",
|
| - dw1, sz2,sz3,dw4,*(DWORD *)plis->arg4.pData);
|
| - else
|
| - *output = StringPrintf("NPN_NewStream(%#08lx, \"%s\", \"%s\", %#08lx)", dw1, sz2,sz3,dw4);
|
| - break;
|
| - }
|
| - case action_npn_destroy_stream:
|
| - *output = StringPrintf("NPN_DestroyStream(%#08lx, %#08lx, %s)", dw1,dw2,FormatNPAPIReason((int)dw3));
|
| - break;
|
| - case action_npn_request_read:
|
| - *output = StringPrintf("NPN_RequestRead(%#08lx, %#08lx)", dw1, dw2);
|
| - break;
|
| - case action_npn_write:
|
| - {
|
| - FormatPCHARArgument(sz4, sizeof(sz4), &plis->arg4);
|
| - *output = StringPrintf("NPN_Write(%#08lx, %#08lx, %li, %s)", dw1, dw2, (int32)dw3, sz4);
|
| - break;
|
| - }
|
| - case action_npn_status:
|
| - {
|
| - FormatPCHARArgument(sz2, sizeof(sz2), &plis->arg2);
|
| - *output = StringPrintf("NPN_Status(%#08lx, %s)", dw1, sz2);
|
| - break;
|
| - }
|
| - case action_npn_user_agent:
|
| - *output = StringPrintf("NPN_UserAgent(%#08lx)", dw1);
|
| - break;
|
| - case action_npn_mem_alloc:
|
| - *output = StringPrintf("NPN_MemAlloc(%li)", dw1);
|
| - break;
|
| - case action_npn_mem_free:
|
| - *output = StringPrintf("NPN_MemFree(%#08lx)", dw1);
|
| - break;
|
| - case action_npn_mem_flush:
|
| - *output = StringPrintf("NPN_MemFlush(%li)", dw1);
|
| - break;
|
| - case action_npn_reload_plugins:
|
| - {
|
| - FormatBOOLArgument(sz1, sizeof(sz1), &plis->arg1);
|
| - *output = StringPrintf("NPN_ReloadPlugins(%s)", sz1);
|
| - break;
|
| - }
|
| - case action_npn_get_java_env:
|
| - *output = StringPrintf("NPN_GetJavaEnv()");
|
| - break;
|
| - case action_npn_get_java_peer:
|
| - *output = StringPrintf("NPN_GetJavaPeer(%#08lx)", dw1);
|
| - break;
|
| - case action_npn_get_value:
|
| - {
|
| - switch(dw2)
|
| - {
|
| - case NPNVxDisplay:
|
| - case NPNVxtAppContext:
|
| - case NPNVnetscapeWindow:
|
| - if(dw3 != 0L)
|
| - *output = StringPrintf("NPN_GetValue(%#08lx, %s, %#08lx(%#08lx))",dw1,FormatNPNVariable((NPNVariable)dw2),dw3,*(DWORD *)dw3);
|
| - else
|
| - *output = StringPrintf("NPN_GetValue(%#08lx, %s, %#08lx)",dw1,FormatNPNVariable((NPNVariable)dw2),dw3);
|
| - break;
|
| - case NPNVjavascriptEnabledBool:
|
| - case NPNVasdEnabledBool:
|
| - case NPNVisOfflineBool:
|
| - if(dw3 != 0L)
|
| - *output = StringPrintf("NPN_GetValue(%#08lx, %s, %#08lx(%s))",
|
| - dw1,FormatNPNVariable((NPNVariable)dw2),dw3,
|
| - (((NPBool)*(DWORD *)dw3) == TRUE) ? "TRUE" : "FALSE");
|
| - else
|
| - *output = StringPrintf("NPN_GetValue(%#08lx, %s, %#08lx)",dw1,FormatNPNVariable((NPNVariable)dw2),dw3);
|
| - break;
|
| - default:
|
| - break;
|
| - }
|
| - break;
|
| - }
|
| - case action_npn_set_value:
|
| -
|
| - if(((NPPVariable)dw2 == NPPVpluginNameString) || ((NPPVariable)dw2 == NPPVpluginDescriptionString))
|
| - {
|
| - FormatPCHARArgument(sz3, sizeof(sz3), &plis->arg3);
|
| - *output = StringPrintf("NPN_SetValue(%#08lx, %s, %s)", dw1,FormatNPPVariable((NPPVariable)dw2),sz3);
|
| - }
|
| - else if(((NPPVariable)dw2 == NPPVpluginWindowBool) || ((NPPVariable)dw2 == NPPVpluginTransparentBool))
|
| - {
|
| - FormatPBOOLArgument(sz3, sizeof(sz3), &plis->arg3);
|
| - *output = StringPrintf("NPN_SetValue(%#08lx, %s, %s)",
|
| - dw1,FormatNPPVariable((NPPVariable)dw2),sz3);
|
| - }
|
| - else if((NPPVariable)dw2 == NPPVpluginWindowSize)
|
| - {
|
| - if(plis->arg3.pData != NULL)
|
| - {
|
| - int32 iWidth = ((NPSize *)plis->arg3.pData)->width;
|
| - int32 iHeight = ((NPSize *)plis->arg3.pData)->height;
|
| - *output = StringPrintf("NPN_SetValue(%#08lx, %s, %#08lx(%li,%li))",
|
| - dw1,FormatNPPVariable((NPPVariable)dw2),dw3,iWidth,iHeight);
|
| - }
|
| - else
|
| - *output = StringPrintf("NPN_SetValue(%#08lx, %s, %#08lx(?,?))",
|
| - dw1,FormatNPPVariable((NPPVariable)dw2),dw3);
|
| - }
|
| - else
|
| - *output = StringPrintf("NPN_SetValue(%#08lx, %s, %#08lx(What is it?))", dw1,FormatNPPVariable((NPPVariable)dw2),dw3);
|
| - break;
|
| - case action_npn_invalidate_rect:
|
| - {
|
| - if(plis->arg2.pData != NULL)
|
| - {
|
| - uint16 top = ((NPRect *)plis->arg2.pData)->top;
|
| - uint16 left = ((NPRect *)plis->arg2.pData)->left;
|
| - uint16 bottom = ((NPRect *)plis->arg2.pData)->bottom;
|
| - uint16 right = ((NPRect *)plis->arg2.pData)->right;
|
| - *output = StringPrintf("NPN_InvalidateRect(%#08lx, %#08lx(%u,%u;%u,%u)", dw1,dw2,top,left,bottom,right);
|
| - }
|
| - else
|
| - *output = StringPrintf("NPN_InvalidateRect(%#08lx, %#08lx(?,?,?,?)", dw1,dw2);
|
| - break;
|
| - }
|
| - case action_npn_invalidate_region:
|
| - *output = StringPrintf("NPN_InvalidateRegion(%#08lx, %#08lx)", dw1,dw2);
|
| - break;
|
| - case action_npn_force_redraw:
|
| - *output = StringPrintf("NPN_ForceRedraw(%#08lx)", dw1);
|
| - break;
|
| - case action_npn_enumerate:
|
| - *output = StringPrintf("NPN_Enumerate()");
|
| - break;
|
| - case action_npn_pop_popups_enabled_state:
|
| - *output = StringPrintf("NPN_PopPopupsEnabledState()");
|
| - break;
|
| - case action_npn_push_popups_enabled_state:
|
| - *output = StringPrintf("NPN_PushPopupsEnabledState()");
|
| - break;
|
| - case action_npn_set_exception:
|
| - *output = StringPrintf("NPN_SetException(%s)", dw1);
|
| - break;
|
| - case action_npn_has_method:
|
| - *output = StringPrintf("NPN_HasMethod(%d)", dw1);
|
| - break;
|
| - case action_npn_has_property:
|
| - *output = StringPrintf("NPN_HasProperty(%d)", dw1);
|
| - break;
|
| - case action_npn_remove_property:
|
| - *output = StringPrintf("NPN_RemoveProperty(%d)", dw1);
|
| - break;
|
| - case action_npn_set_property:
|
| - *output = StringPrintf("NPN_SetProperty(%d)", dw1);
|
| - break;
|
| - case action_npn_get_property:
|
| - *output = StringPrintf("NPN_GetProperty(%d)", dw1);
|
| - break;
|
| - case action_npn_evaluate:
|
| - *output = StringPrintf("NPN_Evaluate(%s)", dw1);
|
| - break;
|
| - case action_npn_invoke_default:
|
| - *output = StringPrintf("NPN_InvokeDefault(%#08lx)", dw1);
|
| - break;
|
| - case action_npn_invoke:
|
| - *output = StringPrintf("NPN_Invoke(%#08lx)", dw1);
|
| - break;
|
| - case action_npn_release_object:
|
| - *output = StringPrintf("NPN_ReleaseObject(%d)", dw1);
|
| - break;
|
| - case action_npn_retain_object:
|
| - *output = StringPrintf("NPN_RetainObject(%d)", dw1);
|
| - break;
|
| - case action_npn_create_object:
|
| - *output = StringPrintf("NPN_CreateObject(%#08lx)", dw1);
|
| - break;
|
| - case action_npn_int_from_identifier:
|
| - *output = StringPrintf("NPN_IntFromIdentifier(%d)", dw1);
|
| - break;
|
| - case action_npn_utf8_from_identifier:
|
| - *output = StringPrintf("NPN_UTF8FromIdentifier(%d)", dw1);
|
| - break;
|
| - case action_npn_identifier_is_string:
|
| - *output = StringPrintf("NPN_IdentifierIsString(%d)", dw1);
|
| - break;
|
| - case action_npn_get_int_identifer:
|
| - *output = StringPrintf("NPN_GetIntIdentifier(%d)", dw1);
|
| - break;
|
| - case action_npn_get_string_identifiers:
|
| - *output = StringPrintf("NPN_GetStringIdentifier()");
|
| - break;
|
| -
|
| - // NPP action
|
| - case action_npp_new:
|
| - {
|
| - char szMode[16];
|
| - switch (dw3)
|
| - {
|
| - case NP_EMBED:
|
| - strcpy(szMode, "NP_EMBED");
|
| - break;
|
| - case NP_FULL:
|
| - strcpy(szMode, "NP_FULL");
|
| - break;
|
| - default:
|
| - strcpy(szMode, "[Invalid mode]");
|
| - break;
|
| - }
|
| - *output = StringPrintf("NPP_New(\"%s\", %#08lx, %s, %i, %#08lx, %#08lx, %#08lx)",
|
| - (char *)dw1,dw2,szMode,(int)dw4,dw5,dw6,dw7);
|
| - break;
|
| - }
|
| - case action_npp_destroy:
|
| - *output = StringPrintf("NPP_Destroy(%#08lx, %#08lx(%#08lx))", dw1, dw2, *(DWORD *)plis->arg2.pData);
|
| - break;
|
| - case action_npp_set_window:
|
| - {
|
| - char szWindow[512];
|
| -
|
| - if(plis->arg2.pData != NULL)
|
| - {
|
| - char szType[80];
|
| - switch (((NPWindow*)plis->arg2.pData)->type)
|
| - {
|
| - case NPWindowTypeWindow:
|
| - sprintf(szType, "NPWindowTypeWindow");
|
| - break;
|
| - case NPWindowTypeDrawable:
|
| - sprintf(szType, "NPWindowTypeDrawable");
|
| - break;
|
| - default:
|
| - sprintf(szType, "[Unlisted type]");
|
| - break;
|
| - }
|
| - sprintf(szWindow, "NPWindow: %#08lx, (%li,%li), (%li,%li), (%i,%i,%i,%i), %s",
|
| - ((NPWindow*)plis->arg2.pData)->window,
|
| - ((NPWindow*)plis->arg2.pData)->x,
|
| - ((NPWindow*)plis->arg2.pData)->y,
|
| - ((NPWindow*)plis->arg2.pData)->width,
|
| - ((NPWindow*)plis->arg2.pData)->height,
|
| - ((NPWindow*)plis->arg2.pData)->clipRect.top,
|
| - ((NPWindow*)plis->arg2.pData)->clipRect.left,
|
| - ((NPWindow*)plis->arg2.pData)->clipRect.bottom,
|
| - ((NPWindow*)plis->arg2.pData)->clipRect.right, szType);
|
| - *output = StringPrintf("NPP_SetWindow(%#08lx, %#08lx) %s", dw1,dw2,szWindow);
|
| - }
|
| - else
|
| - *output = StringPrintf("NPP_SetWindow(%#08lx, %#08lx)", dw1,dw2);
|
| -
|
| - break;
|
| - }
|
| - case action_npp_new_stream:
|
| - {
|
| - switch (*(int16 *)plis->arg5.pData)
|
| - {
|
| - case NP_NORMAL:
|
| - sprintf(sz5, "NP_NORMAL");
|
| - break;
|
| - case NP_ASFILEONLY:
|
| - sprintf(sz5, "NP_ASFILEONLY");
|
| - break;
|
| - case NP_ASFILE:
|
| - sprintf(sz5, "NP_ASFILE");
|
| - break;
|
| - default:
|
| - sprintf(sz5, "[Unlisted type]");
|
| - break;
|
| - }
|
| - FormatPCHARArgument(sz2, sizeof(sz2), &plis->arg2);
|
| - *output = StringPrintf("NPP_NewStream(%#08lx, %s, %#08lx (%s), %s, %s)", dw1, sz2, dw3,
|
| - ((NPStream*)dw3)->url, ((NPBool)dw4 == TRUE) ? "TRUE" : "FALSE", sz5);
|
| - break;
|
| - }
|
| - case action_npp_destroy_stream:
|
| - *output = StringPrintf("NPP_DestroyStream(%#08lx, %#08lx, %s)", dw1,dw2,FormatNPAPIReason((int)dw3));
|
| - break;
|
| - case action_npp_stream_as_file:
|
| - FormatPCHARArgument(sz3, sizeof(sz3), &plis->arg3);
|
| - *output = StringPrintf("NPP_StreamAsFile(%#08lx, %#08lx, %s)", dw1,dw2,sz3);
|
| - break;
|
| - case action_npp_write_ready:
|
| - *output = StringPrintf("NPP_WriteReady(%#08lx, %#08lx)", dw1,dw2);
|
| - break;
|
| - case action_npp_write:
|
| - {
|
| - FormatPCHARArgument(sz5, sizeof(sz5), &plis->arg5);
|
| - *output = StringPrintf("NPP_Write(%#08lx, %#08lx, %li, %li, %s))",dw1,dw2,dw3,dw4,sz5);
|
| - break;
|
| - }
|
| - case action_npp_print:
|
| - *output = StringPrintf("NPP_Print(%#08lx, %#08lx)", dw1, dw2);
|
| - break;
|
| - case action_npp_handle_event:
|
| - {
|
| - NPEvent *event = (NPEvent*)dw2;
|
| - *output = StringPrintf("NPP_HandleEvent(%#08lx, %#08lx {event=%d, wParam=%#08lx lParam=%#08lx)", dw1,dw2,event->event, event->wParam, event->lParam);
|
| - break;
|
| - }
|
| - case action_npp_url_notify:
|
| - {
|
| - FormatPCHARArgument(sz2, sizeof(sz2), &plis->arg2);
|
| - *output = StringPrintf("NPP_URLNotify(%#08lx, %s, %s, %#08lx)", dw1,sz2,FormatNPAPIReason((int)dw3),dw4);
|
| - break;
|
| - }
|
| - case action_npp_get_java_class:
|
| - *output = StringPrintf("NPP_GetJavaClass()");
|
| - break;
|
| - case action_npp_get_value:
|
| - *output = StringPrintf("NPP_GetValue(%#08lx, %s, %#08lx)", dw1,FormatNPPVariable((NPPVariable)dw2),dw3);
|
| - break;
|
| - case action_npp_set_value:
|
| - *output = StringPrintf("NPP_SetValue(%#08lx, %s, %#08lx)", dw1,FormatNPNVariable((NPNVariable)dw2),dw3);
|
| - break;
|
| -
|
| - default:
|
| - *output = StringPrintf("Unknown action");
|
| - break;
|
| - }
|
| - *output += szEOL;
|
| - *output += szEOI;
|
| -}
|
|
|