Debug.cpp
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:7k
源码类别:

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*******************************************************************************
  36.  * Filename:
  37.  * ---------
  38.  *  Debug.cpp
  39.  *
  40.  * Project:
  41.  * --------
  42.  *  MAUI
  43.  *
  44.  * Description:
  45.  * ------------
  46.  *  
  47.  *
  48.  * Author:
  49.  * -------
  50.  *  
  51.  *
  52.  *==============================================================================
  53.  *  HISTORY
  54.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  55.  *------------------------------------------------------------------------------
  56.  * removed!
  57.  *
  58.  *------------------------------------------------------------------------------
  59.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  60.  *==============================================================================
  61.  *******************************************************************************/
  62. /**
  63.  * Copyright Notice
  64.  * ?2002 - 2003, Pixtel Communications, Inc., 1489 43rd Ave. W.,
  65.  * Vancouver, B.C. V6M 4K8 Canada. All Rights Reserved.
  66.  *  (It is illegal to remove this copyright notice from this software or any
  67.  *  portion of it)
  68.  */
  69. /**************************************************************
  70. FILENAME : Debug.cpp
  71.    PURPOSE : Functions to print debug messages on console. This file uses windows 
  72. specific calls.
  73. REMARKS : nil
  74. AUTHOR : Vijay Vaidya
  75. DATE : Aug' 28, 2002
  76. **************************************************************/
  77. #include "stdafx.h"
  78. #include "PixtelDataTypes.h"
  79. extern "C" {
  80. #ifdef MMI_ON_WIN32
  81. extern HWND hWnd; /* main window handle */
  82. bool CtrlHandler(U32 fdwCtrlType) ; /* console CTRL signal handler */
  83. void ShutdownSystemOperation(void); /* shutdown system operations */
  84. #endif
  85. /**************************************************************
  86. FUNCTION NAME : DebugWindowAlloc
  87.    PURPOSE : Allocate debug console to print debug messages
  88. INPUT PARAMETERS : nil
  89. OUTPUT PARAMETERS : nil
  90. RETURNS : void 
  91. REMARKS : 
  92. **************************************************************/
  93. void DebugWindowAlloc()
  94. {
  95. // [002]
  96. #ifdef MMI_ON_WIN32
  97. RECT rcClient; /* console window rectangle pos */
  98. HWND conshWnd; /* console window handle */
  99. /* allocates a new console for the calling process */
  100. if(!AllocConsole())
  101. {
  102. exit(1);
  103. }
  104. /* sets console window title */
  105. #ifdef __ASCII
  106. SetConsoleTitle(" Background Process ");
  107. #endif
  108. #ifdef __UCS2_ENCODING
  109. SetConsoleTitle(__TEXT(" Background Process "));
  110. #endif
  111. /* specified window into the foreground and activates the window */ 
  112. SetForegroundWindow(hWnd);
  113. /* gets handle for console window */ 
  114. conshWnd = GetWindow(hWnd, GW_HWNDNEXT);
  115. /* gets rect pos for console window */ 
  116.     GetClientRect(conshWnd, &rcClient); 
  117. /* sets console window pos */ 
  118.     SetWindowPos(conshWnd, HWND_NOTOPMOST, rcClient.left+300, rcClient.top+40, 0, 0, SWP_NOSIZE); 
  119.  
  120. /* by default, the console window is minimized(forcing to minimize) */ 
  121. ShowWindow(conshWnd, SW_FORCEMINIMIZE); 
  122. /* specified window into the foreground and activates the window */ 
  123. SetForegroundWindow(hWnd);
  124. /* sets console control handler */
  125.     SetConsoleCtrlHandler((PHANDLER_ROUTINE) CtrlHandler, TRUE);
  126. #endif  
  127. // [002]  
  128. }
  129. /**************************************************************
  130. FUNCTION NAME : DisplayToDebugwindow
  131.    PURPOSE : To display messages on console
  132. INPUT PARAMETERS : nil
  133. OUTPUT PARAMETERS : nil
  134. RETURNS : void 
  135. REMARKS : 
  136. **************************************************************/
  137. // [003]
  138. #ifdef MMI_ON_WIN32
  139. void DisplayToDebugwindow(S8 *nPrintableStr)
  140. {
  141. HANDLE OutHndle = NULL; /* handle to screen buffer */
  142. unsigned long lpNumberOfCharsWritten = 0; /* number of characters written */
  143. /* retrieves a handle for the standard output */
  144. OutHndle = GetStdHandle(STD_OUTPUT_HANDLE);
  145. /* writes a character string to a console screen buffer beginning at the current cursor location */
  146. if(!WriteConsole(
  147. OutHndle, /* handle to screen buffer */
  148. nPrintableStr, /* write buffer */
  149. strlen(nPrintableStr), /* number of characters to write */
  150. &lpNumberOfCharsWritten, /* number of characters written */
  151. NULL /* reserved */
  152. ))
  153. {
  154. //return 0;
  155. }
  156. }
  157. #endif
  158. // [003]
  159. /**************************************************************
  160. FUNCTION NAME : CtrlHandler(unsigned long fdwCtrlType)
  161.    PURPOSE : handles all CTRL signals 
  162. INPUT PARAMETERS : nil
  163. OUTPUT PARAMETERS : nil
  164. RETURNS : void 
  165. REMARKS : nil
  166. **************************************************************/
  167. #ifdef MMI_ON_WIN32
  168. bool CtrlHandler(U32 fdwCtrlType) 
  169. /* receives console CTRL signal type */
  170.     switch (fdwCtrlType) 
  171.     { 
  172. // [004]    
  173. case CTRL_C_EVENT: 
  174. case CTRL_CLOSE_EVENT: 
  175. case CTRL_BREAK_EVENT: 
  176. case CTRL_LOGOFF_EVENT: 
  177. case CTRL_SHUTDOWN_EVENT: 
  178. ShutdownSystemOperation();
  179. FreeConsole();
  180.             return TRUE; 
  181. // [004]  
  182.         default: 
  183.              return FALSE; 
  184.     } 
  185. #endif  
  186. } //extern "C"