⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 argument.h

📁 Windows CE 6.0 Server 源码
💻 H
字号:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft shared
// source or premium shared source license agreement under which you licensed
// this source code. If you did not accept the terms of the license agreement,
// you are not authorized to use this source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the SOURCE.RTF on your install media or the root of your tools installation.
// THE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES.
//
#ifndef __ARGUMENT__
#define __ARGUMENT__

#include "string.hxx"
#include "variant.h"
#include "vector.hxx"

class StateVar;

// Argument
class Argument
{
public:
    Argument(LPCWSTR pwszName, LPCWSTR pwszStateVariable, bool bRetval)
        : m_strName(pwszName),
          m_strStateVar(pwszStateVariable),
          m_bRetval(bRetval),
          m_pStateVar(NULL)
    {}

    // SetValue
    void SetValue(const VARIANTARG& varValue)
        {m_varValue = varValue; }

    void SetValue(LPCWSTR pwszValue)
        {DecodeValue(pwszValue); }

    // GetValue
    HRESULT GetValue(VARIANTARG* pvarValue) const;

    // GetName
    LPCWSTR GetName() const
        {return m_strName; }

    // IsRetval
    bool IsRetval() const
        {return m_bRetval; }

    // Reset
    void Reset()
        {m_varValue.Clear(); }

    // BindStateVar
    void BindStateVar(ce::vector<StateVar>::const_iterator itBegin, ce::vector<StateVar>::const_iterator itEnd);
    void BindStateVar(const StateVar* pStateVar)
        {m_pStateVar = pStateVar; }

    // GetVartype
    VARTYPE GetVartype() const;
    
    // ToString
    LPCWSTR ToString() const;
    
protected:
    bool EncodeValue() const;
    void DecodeValue(LPCWSTR pwszValue);    

protected:
    ce::wstring         m_strName;
    ce::wstring         m_strStateVar;
    bool                m_bRetval;
    ce::variant         m_varValue;
    mutable ce::wstring m_strValue;
    const StateVar*     m_pStateVar;
};

#endif // __ARGUMENT__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -