59 lines
1.5 KiB
C++
59 lines
1.5 KiB
C++
// dllmain.cpp
|
|
#include "pch.h"
|
|
|
|
#include "ShrinkwrapCommand.h"
|
|
|
|
#include "CreoOtk.h"
|
|
|
|
namespace {
|
|
|
|
class ShrinkwrapAccessListener : public pfcUICommandAccessListener {
|
|
public:
|
|
pfcCommandAccess OnCommandAccess(xbool allow_error_messages) override {
|
|
(void)allow_error_messages;
|
|
// 暂时总是返回可用,方便测试
|
|
return pfcACCESS_AVAILABLE;
|
|
}
|
|
};
|
|
|
|
} // namespace
|
|
|
|
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
|
|
switch (ul_reason_for_call) {
|
|
case DLL_PROCESS_ATTACH:
|
|
case DLL_THREAD_ATTACH:
|
|
case DLL_THREAD_DETACH:
|
|
case DLL_PROCESS_DETACH:
|
|
break;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
#pragma warning(push)
|
|
#pragma warning(disable : 4716)
|
|
extern "C" __declspec(dllexport) int user_initialize(void) {
|
|
try {
|
|
pfcSession_ptr session = pfcGetProESession();
|
|
if (!session) return 0;
|
|
|
|
pfcUICommandActionListener_ptr action = new ShrinkwrapActionListener();
|
|
pfcUICommand_ptr cmd = session->UICreateCommand("TellmeCreoPlugingCmd", action);
|
|
if (!cmd) return 0;
|
|
|
|
pfcUICommandAccessListener_ptr access = new ShrinkwrapAccessListener();
|
|
pfcActionListener_ptr access_as_action(
|
|
static_cast<pfcActionListener*>(static_cast<pfcUICommandAccessListener*>(access))
|
|
);
|
|
cmd->AddActionListener(access_as_action);
|
|
|
|
cmd->Designate("shrinkwrap_msg.txt", "LightExport", "LightExport Help", "LightExport Description");
|
|
} catch (...) {
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
#pragma warning(pop)
|
|
|
|
extern "C" __declspec(dllexport) void user_terminate(void) {
|
|
}
|