mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -04:00
87 lines
2.4 KiB
C++
87 lines
2.4 KiB
C++
// Filename: PPInstance.h
|
|
// Created by: atrestman (14Sept09)
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
//
|
|
// PANDA 3D SOFTWARE
|
|
// Copyright (c) Carnegie Mellon University. All rights reserved.
|
|
//
|
|
// All use of this software is subject to the terms of the revised BSD
|
|
// license. You should have received a copy of this license along
|
|
// with this source code in a file named "LICENSE."
|
|
//
|
|
////////////////////////////////////////////////////////////////////
|
|
|
|
#pragma once
|
|
|
|
#include <string>
|
|
#include <math.h>
|
|
#include "afxmt.h"
|
|
|
|
#include "p3d_plugin.h"
|
|
#include "PPDownloadCallback.h"
|
|
#include "PPLogger.h"
|
|
#include "fileSpec.h"
|
|
|
|
#define WM_PY_LAUNCHED (WM_USER + 1)
|
|
#define WM_PROGRESS (WM_USER + 2)
|
|
#define WM_PANDA_NOTIFICATION (WM_USER + 3)
|
|
|
|
class CP3DActiveXCtrl;
|
|
|
|
extern P3D_instance_feed_url_stream_func *P3D_instance_feed_url_stream;
|
|
extern P3D_make_class_definition_func *P3D_make_class_definition;
|
|
extern P3D_new_undefined_object_func *P3D_new_undefined_object;
|
|
extern P3D_new_none_object_func *P3D_new_none_object;
|
|
extern P3D_new_bool_object_func *P3D_new_bool_object;
|
|
extern P3D_new_int_object_func *P3D_new_int_object;
|
|
extern P3D_new_float_object_func *P3D_new_float_object;
|
|
extern P3D_new_string_object_func *P3D_new_string_object;
|
|
|
|
class PPInstance
|
|
{
|
|
public:
|
|
PPInstance( CP3DActiveXCtrl& parentCtrl );
|
|
virtual ~PPInstance( );
|
|
|
|
int DownloadP3DComponents( std::string& p3dDllFilename );
|
|
|
|
int LoadPlugin( const std::string& dllFilename );
|
|
int UnloadPlugin( void );
|
|
|
|
int Start( const std::string& p3dFileName );
|
|
|
|
std::string GetHostUrl( );
|
|
std::string GetP3DFilename( );
|
|
|
|
static void HandleRequestLoop();
|
|
|
|
inline bool IsInit() { return m_isInit; }
|
|
|
|
HWND m_parentWnd;
|
|
CEvent m_eventStop;
|
|
|
|
P3D_object* m_p3dObject;
|
|
|
|
protected:
|
|
PPInstance( );
|
|
PPInstance( const PPInstance& );
|
|
|
|
int DownloadFile( const std::string& from, const std::string& to );
|
|
int CopyFile( const std::string& from, const std::string& to );
|
|
int ReadContents( const std::string& contentsFilename, FileSpec& p3dDllFile );
|
|
|
|
void HandleRequest( P3D_request *request );
|
|
static void HandleRequestGetUrl( void *data );
|
|
|
|
P3D_instance* m_p3dInstance;
|
|
CP3DActiveXCtrl& m_parentCtrl;
|
|
PPLogger m_logger;
|
|
|
|
bool m_handleRequestOnUIThread;
|
|
bool m_isInit;
|
|
bool m_pluginLoaded;
|
|
|
|
std::string m_rootDir;
|
|
};
|