Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
2.2 KiB

  1. #ifndef _ISPDATA_H
  2. #define _ISPDATA_H
  3. #include "icwhelp.h"
  4. #include "appdefs.h"
  5. typedef BOOL (* VALIDATECONTENT) (LPCTSTR lpData);
  6. enum IPSDataContentValidators
  7. {
  8. ValidateCCNumber = 0,
  9. ValidateCCExpire
  10. };
  11. typedef struct tag_ISPDATAELEMENT
  12. {
  13. LPCTSTR lpQueryElementName; // Static name to put in query string
  14. LPTSTR lpQueryElementValue; // data for element
  15. WORD idContentValidator; // id of content validator
  16. WORD wValidateNameID; // validation element name string ID
  17. DWORD dwValidateFlag; // validation bit flag for this element
  18. }ISPDATAELEMENT, *LPISPDATAELEMENT;
  19. class CICWISPData : public IICWISPData
  20. {
  21. public:
  22. // IICWISPData
  23. virtual BOOL STDMETHODCALLTYPE PutDataElement(WORD wElement, LPCTSTR lpValue, WORD wValidateLevel);
  24. virtual HRESULT STDMETHODCALLTYPE GetQueryString(BSTR bstrBaseURL, BSTR *lpReturnURL);
  25. virtual LPCTSTR STDMETHODCALLTYPE GetDataElement(WORD wElement)
  26. {
  27. ASSERT(wElement < ISPDATAELEMENTS_LEN);
  28. return (m_ISPDataElements[wElement].lpQueryElementValue);
  29. };
  30. virtual void STDMETHODCALLTYPE PutValidationFlags(DWORD dwFlags)
  31. {
  32. m_dwValidationFlags = dwFlags;
  33. };
  34. virtual void STDMETHODCALLTYPE Init(HWND hWndParent)
  35. {
  36. m_hWndParent = hWndParent;
  37. };
  38. // IUNKNOWN
  39. virtual HRESULT STDMETHODCALLTYPE QueryInterface( REFIID theGUID, void** retPtr );
  40. virtual ULONG STDMETHODCALLTYPE AddRef( void );
  41. virtual ULONG STDMETHODCALLTYPE Release( void );
  42. CICWISPData(CServer* pServer );
  43. ~CICWISPData();
  44. private:
  45. BOOL bValidateContent(WORD wFunctionID, LPCTSTR lpData);
  46. LPISPDATAELEMENT m_ISPDataElements;
  47. HWND m_hWndParent; // parent for messages
  48. DWORD m_dwValidationFlags;
  49. // For class object management
  50. LONG m_lRefCount;
  51. CServer* m_pServer; // Pointer to this component server's control object.
  52. };
  53. #endif //_ISPDATA_H