Asn1ParsePage.h
上传用户:dengkfang
上传日期:2008-12-30
资源大小:5233k
文件大小:3k
源码类别:

CA认证

开发平台:

Visual C++

  1. #if !defined(AFX_ASN1PARSEPAGE_H__82FDAB26_8921_44E8_B1BC_3C9DE96A2F73__INCLUDED_)
  2. #define AFX_ASN1PARSEPAGE_H__82FDAB26_8921_44E8_B1BC_3C9DE96A2F73__INCLUDED_
  3. #if _MSC_VER > 1000
  4. #pragma once
  5. #endif // _MSC_VER > 1000
  6. // Asn1ParsePage.h : header file
  7. //
  8. /////////////////////////////////////////////////////////////////////////////
  9. // CAsn1ParsePage dialog
  10. #include ".ControltooltipOXToolTipCtrl.h"
  11. class CAsn1ParsePage : public CPropertyPage
  12. {
  13. DECLARE_DYNCREATE(CAsn1ParsePage)
  14. // Construction
  15. public:
  16. virtual BOOL PreTranslateMessage(MSG* pMsg);
  17. void GetAsn1Info(CString strpath);
  18. void TranslateCT(); //繙譯諸如樹型控件,列錶控件等內容
  19. CAsn1ParsePage();
  20. ~CAsn1ParsePage();
  21. //ASN1解码结构
  22. struct stuTREE
  23. {
  24. UINT EXCURSION;//偏移
  25. UINT DEPTH;//深度
  26. UINT LENGTH;//内容长度
  27. char TYPE[24];//类型
  28. char INFO[128];//内容
  29. stuTREE * Link;
  30. stuTREE()
  31. {
  32. memset(this,0,sizeof(stuTREE));
  33. }
  34. stuTREE(UINT Excursion,UINT Depth,UINT Length,char * Type)
  35. {
  36. memset(this,0,sizeof(stuTREE));
  37. EXCURSION=Excursion;
  38. DEPTH=Depth;
  39. LENGTH=Length;
  40. strncpy(TYPE,Type,sizeof(TYPE));
  41. Link=NULL;
  42. }
  43. };
  44. // Dialog Data
  45. //{{AFX_DATA(CAsn1ParsePage)
  46. enum { IDD = IDD_PROPPAGE_ASN1 };
  47. // CXPEdit m_XpEdit;
  48. CTreeCtrl m_Tree;
  49. CXPStyleButtonST m_Bread;
  50. //}}AFX_DATA
  51. // Overrides
  52. // ClassWizard generate virtual function overrides
  53. //{{AFX_VIRTUAL(CAsn1ParsePage)
  54. public:
  55. protected:
  56. virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
  57. //}}AFX_VIRTUAL
  58. // Implementation
  59. protected:
  60. COXToolTipCtrl m_toolTip;
  61. void AddMsg(CString info, DWORD type);
  62. struct stuNODE
  63. {
  64. HTREEITEM NODE;
  65. UINT EXCURSION;//偏移
  66. UINT LENGTH;//内容长度
  67. char INFO[128];
  68. stuNODE()
  69. {
  70. memset(this,0,sizeof(stuNODE));
  71. }
  72. };
  73. CPtrList m_NodeList;
  74. HTREEITEM m_TreeItem; //右击树控件选中的项
  75. // Generated message map functions
  76. //{{AFX_MSG(CAsn1ParsePage)
  77. afx_msg void OnBRead();
  78. virtual BOOL OnInitDialog();
  79. afx_msg void OnSelchangedAsn1Tree(NMHDR* pNMHDR, LRESULT* pResult);
  80. afx_msg void OnDestroy();
  81. afx_msg void OnRclickAsn1Tree(NMHDR* pNMHDR, LRESULT* pResult);
  82. afx_msg void OnMenuitemExpane();
  83. //}}AFX_MSG
  84. DECLARE_MESSAGE_MAP()
  85. private:
  86. void ExpandAll(HTREEITEM item,UINT nCode);
  87. int AddTree(stuTREE *& Head,UINT Excursion,UINT Depth,UINT Length,char * Type);
  88. void FreeTree(stuTREE *& Head);
  89. int asn1_print_info(int tag, int xclass, int constructed,
  90. int indent,char * str);
  91. void Utf8ToAnsi(UCHAR * lpsrc, int srclen, LPSTR lpdst, int& dstlen);
  92. BOOL GetAsn1Str(ASN1_STRING * str,char * outName);
  93. int asn1_parse2(stuTREE *& TREE, unsigned char **pp, long length, int offset,
  94. int depth, int indent, int dump,char * msg);
  95. int ASN1_parsedump(stuTREE *& TREE, unsigned char *pp, long len,char * msg);
  96. BOOL Asn1Parse(const char * infile,stuTREE *& TREE,const int informat,char * msg);
  97. };
  98. //{{AFX_INSERT_LOCATION}}
  99. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  100. #endif // !defined(AFX_ASN1PARSEPAGE_H__82FDAB26_8921_44E8_B1BC_3C9DE96A2F73__INCLUDED_)