#include <iostream>
#define RGB(r, g ,b) \
((DWORD) (((BYTE) (r) | \
((WORD) (g) << 8)) | \
(((DWORD) (BYTE) (b)) << 16)))
namespace shell {
struct Command
{
virtual ~Command() {}
};
}
namespace rgb {
struct RGB : public shell::Command
{
};
}
namespace shell {
struct Module
{
Module(): cmd(new (rgb::RGB)())
{
}
virtual ~Module()
{
delete cmd;
}
Command *cmd;
};
}
int main()
{
shell::Module module;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKI2RlZmluZSBSR0IociwgZyAsYikgIFwKICAgICAgICAoKERXT1JEKSAoKChCWVRFKSAocikgfCBcCiAgICAgICAgKChXT1JEKSAoZykgPDwgOCkpIHwgXAogICAgICAgICgoKERXT1JEKSAoQllURSkgKGIpKSA8PCAxNikpKQoKbmFtZXNwYWNlIHNoZWxsIHsKICAgIAogICAgc3RydWN0IENvbW1hbmQKICAgIHsKICAgICAgICB2aXJ0dWFsIH5Db21tYW5kKCkge30KICAgIH07Cn0KCm5hbWVzcGFjZSByZ2IgewogICAgCiAgICBzdHJ1Y3QgUkdCIDogcHVibGljIHNoZWxsOjpDb21tYW5kCiAgICB7CiAgICB9Owp9CgpuYW1lc3BhY2Ugc2hlbGwgewogICAgCiAgICBzdHJ1Y3QgTW9kdWxlCiAgICB7CiAgICAgICAgTW9kdWxlKCk6IGNtZChuZXcgKHJnYjo6UkdCKSgpKQogICAgICAgIHsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgdmlydHVhbCB+TW9kdWxlKCkKICAgICAgICB7CiAgICAgICAgICAgIGRlbGV0ZSBjbWQ7CiAgICAgICAgfQogICAgICAgIENvbW1hbmQgKmNtZDsKICAgIH07Cn0KCmludCBtYWluKCkKewogICAgc2hlbGw6Ok1vZHVsZSBtb2R1bGU7CiAgICByZXR1cm4gMDsKfQ==