亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bcfbasicserver.cpp

?? 用VC開發ACTIVEX 一書 實例4 BCFBasicServer.
?? CPP
字號:
//=--------------------------------------------------------------------------=
// BCFBasicServer.Cpp
//=--------------------------------------------------------------------------=
// Copyright  1995  Microsoft Corporation.  All Rights Reserved.
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF 
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A 
// PARTICULAR PURPOSE.
//=--------------------------------------------------------------------------=
//
// various routines et all that aren't in a file for a particular automation
// object, and don't need to be in the generic ole automation code.
//
//
#define INITOBJECTS                // define the descriptions for our objects

#include "IPServer.H"
#include "LocalSrv.H"


#include "LocalObj.H"
#include "BCFBasicServerInterfaces.H"
#include "AutoObj.H"
#include "Globals.H"
#include "Util.H"
#include "Resource.H"

#include "BasicAutoObj.H"

// needed for ASSERTs and FAIL
//
SZTHISFILE

//=--------------------------------------------------------------------------=
// our Libid.  This should be the LIBID from the Type library, or NULL if you
// don't have one.
//
const CLSID *g_pLibid = &LIBID_BCFBasicServerObjects;

//=--------------------------------------------------------------------------=
// Setting this flag to TRUE will cause your control to be created using
// its runtime license key even if it's created as part of a composite
// control (ie: a VB5-built UserControl) in a design environment.
//
const BOOL g_fUseRuntimeLicInCompositeCtl = FALSE;

//=--------------------------------------------------------------------------=
// Localization Information
//
// We need the following two pieces of information:
//    a. whether or not this DLL uses satellite DLLs for localization.  if
//       not, then the lcidLocale is ignored, and we just always get resources
//       from the server module file.
//    b. the ambient LocaleID for this in-proc server.  Controls calling
//       GetResourceHandle() will set this up automatically, but anybody
//       else will need to be sure that it's set up properly.
//
const VARIANT_BOOL g_fSatelliteLocalization =  FALSE;
LCID               g_lcidLocale = MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT);


//=--------------------------------------------------------------------------=
// This Table describes all the automatible objects in your automation server.
// See AutomationObject.H for a description of what goes in this structure
// and what it's used for.
//
OBJECTINFO g_ObjectInfo[] = {
    AUTOMATIONOBJECT(BasicAuto),
    EMPTYOBJECT
};

const char g_szLibName[] = "BCFBasicServer";

//=--------------------------------------------------------------------------=
// IntializeLibrary
//=--------------------------------------------------------------------------=
// called from DllMain:DLL_PROCESS_ATTACH.  allows the user to do any sort of
// initialization they want to.
//
// Notes:
//
void WINAPI InitializeLibrary
(
    void
)
{
    // TODO: initialization here.  control window class should be set up in
    // RegisterClassData.
}

//=--------------------------------------------------------------------------=
// UninitializeLibrary
//=--------------------------------------------------------------------------=
// called from DllMain:DLL_PROCESS_DETACH.  allows the user to clean up anything
// they want.
//
// Notes:
//
void WINAPI UninitializeLibrary
(
    void
)
{
    // TODO: uninitialization here.  control window class will be unregistered
    // for you, but anything else needs to be cleaned up manually.
    // Please Note that the Window 95 DLL_PROCESS_DETACH isn't quite as stable
    // as NT's, and you might crash doing certain things here ...
}


//=--------------------------------------------------------------------------=
// CheckForLicense
//=--------------------------------------------------------------------------=
// users can implement this if they wish to support Licensing.  otherwise,
// they can just return TRUE all the time.
//
// Parameters:
//    none
//
// Output:
//    BOOL            - TRUE means the license exists, and we can proceed
//                      FALSE means we're not licensed and cannot proceed
//
// Notes:
//    - implementers should use g_wszLicenseKey and g_wszLicenseLocation
//      from the top of this file to define their licensing [the former
//      is necessary, the latter is recommended]
//
BOOL WINAPI CheckForLicense
(
    void
)
{
    // TODO: you should make sure the machine has your license key here.
    // this is typically done by looking in the registry.
    //
    return TRUE;
}

//=--------------------------------------------------------------------------=
// CheckLicenseKey
//=--------------------------------------------------------------------------=
// when IClassFactory2::CreateInstanceLic is called, a license key is passed
// in, and then passed on to this routine.  users should return a boolean 
// indicating whether it is a valid license key or not
//
// Parameters:
//    LPWSTR          - [in] the key to check
//
// Output:
//    BOOL            - false means it's not valid, true otherwise
//
// Notes:
//
BOOL WINAPI CheckLicenseKey
(
    LPWSTR pwszKey
)
{
    // TODO: check the license key against your values here and make sure it's
    // valid.
    //
    return TRUE;
}

//=--------------------------------------------------------------------------=
// GetLicenseKey
//=--------------------------------------------------------------------------=
// returns our current license key that should be saved out, and then passed
// back to us in IClassFactory2::CreateInstanceLic
//
// Parameters:
//    none
//
// Output:
//    BSTR                 - key or NULL if Out of memory
//
// Notes:
//
BSTR WINAPI GetLicenseKey
(
    void
)
{
    // TODO: return your license key here.
    //
    return SysAllocString(L"");
}

//=--------------------------------------------------------------------------=
// RegisterData
//=--------------------------------------------------------------------------=
// lets the inproc server writer register any data in addition to that in
// any other objects.
//
// Output:
//    BOOL            - false means failure.
//
// Notes:
//
BOOL WINAPI RegisterData
(
    void
)
{
    // TODO: register any additional data here that you might wish to.
    //
    return TRUE;
}

//=--------------------------------------------------------------------------=
// UnregisterData
//=--------------------------------------------------------------------------=
// inproc server writers should unregister anything they registered in
// RegisterData() here.
//
// Output:
//    BOOL            - false means failure.
//
// Notes:
//
BOOL WINAPI UnregisterData
(
    void
)
{
    // TODO: any additional registry cleanup that you might wish to do.
    //
    return TRUE;
}


//=--------------------------------------------------------------------------=
// CRT stubs
//=--------------------------------------------------------------------------=
// these two things are here so the CRTs aren't needed. this is good.
//
// basically, the CRTs define this to suck in a bunch of stuff.  we'll just
// define them here so we don't get an unresolved external.
//
// TODO: if you are going to use the CRTs, then remove this line.
//
extern "C" int _fltused = 1;

extern "C" int _purecall(void)
{
  FAIL("Pure virtual function called.");
  return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产a区久久久| 日韩欧美国产一二三区| 欧美日韩久久一区| 久久伊人中文字幕| 亚洲国产一区在线观看| 国产成人免费高清| 这里只有精品99re| 亚洲人成网站色在线观看| 美女www一区二区| 欧美调教femdomvk| 国产精品福利一区| 国产一区二区三区四区五区入口| 欧美午夜精品久久久| 国产精品久久久久婷婷二区次| 麻豆精品一二三| 欧美日韩午夜在线| 亚洲精品成人少妇| av在线免费不卡| 国产精品色婷婷久久58| 极品美女销魂一区二区三区免费| 88在线观看91蜜桃国自产| 亚洲人xxxx| 色婷婷精品久久二区二区蜜臂av| 国产精品美女一区二区在线观看| 韩国女主播成人在线| 日韩一区二区在线观看视频 | 久久精品无码一区二区三区| 爽爽淫人综合网网站| 欧美日韩黄视频| 性久久久久久久| 欧美久久久久久久久久| 亚洲资源中文字幕| 99久久99久久精品免费看蜜桃| 亚洲国产精品二十页| 国产精品1024| 欧美高清在线一区| eeuss鲁一区二区三区| 亚洲国产精品ⅴa在线观看| 国产成人免费av在线| 国产精品视频九色porn| 91美女在线观看| 亚洲最大的成人av| 欧美日韩中文字幕精品| 日韩在线a电影| 日韩情涩欧美日韩视频| 精品无码三级在线观看视频 | 国产在线国偷精品免费看| 欧美一区二区三区系列电影| 日本中文字幕一区| 久久综合资源网| 国产999精品久久久久久绿帽| 久久一二三国产| 成人激情午夜影院| 亚洲一区在线电影| 日韩小视频在线观看专区| 国产乱子伦视频一区二区三区| 国产精品美女久久久久久久久久久 | 国产精品18久久久久久久久 | 精品国产三级a在线观看| 黄色资源网久久资源365| 国产欧美精品一区| 日本高清不卡在线观看| 视频一区二区三区在线| 久久久久久久久久美女| 91麻豆swag| 另类小说一区二区三区| 国产精品久久久99| 欧美日韩一区二区三区四区| 国产一区二区三区在线观看精品| 中文字幕在线免费不卡| 欧美日韩电影在线| 国产精品99久久久| 亚洲国产日韩精品| 国产欧美一区二区精品婷婷| 欧美日韩一区在线观看| 国产精品1区2区| 亚洲123区在线观看| 国产精品久久久久桃色tv| 日韩午夜激情视频| 91福利社在线观看| 国产福利电影一区二区三区| 亚洲成人综合视频| 国产精品伦理在线| 日韩美女天天操| 在线视频一区二区免费| 国产成人日日夜夜| 秋霞影院一区二区| 一区二区三区日韩精品视频| 欧美精品一区视频| 欧美日韩国产综合草草| 97久久超碰国产精品| 精品亚洲成a人| 美女任你摸久久 | 国产成人高清在线| 麻豆国产一区二区| 亚洲福利视频一区二区| 国产精品萝li| 精品国产成人系列| 日韩女优视频免费观看| 欧美日韩国产经典色站一区二区三区| 粉嫩蜜臀av国产精品网站| 久久丁香综合五月国产三级网站| 亚洲国产综合视频在线观看| 亚洲欧美日韩一区二区| 亚洲国产精品传媒在线观看| 欧美xxxx在线观看| 日韩一区二区三区观看| 91精品黄色片免费大全| 欧美日韩在线亚洲一区蜜芽| 91在线观看美女| 99国产精品一区| av福利精品导航| 色婷婷av一区二区三区软件| 白白色亚洲国产精品| eeuss影院一区二区三区 | 欧美影院一区二区| 91麻豆精品秘密| 91福利国产精品| 色哟哟在线观看一区二区三区| av色综合久久天堂av综合| jizzjizzjizz欧美| 91老司机福利 在线| 91官网在线免费观看| 欧美日韩成人综合天天影院| 欧美二区三区的天堂| 欧美美女黄视频| 精品少妇一区二区三区在线播放| 久久一二三国产| 中文字幕在线一区| 亚洲人123区| 五月激情丁香一区二区三区| 蜜桃一区二区三区四区| 国产suv精品一区二区6| 97久久精品人人做人人爽50路| 欧洲精品一区二区| 欧美一区二区日韩| 久久午夜色播影院免费高清| 中文乱码免费一区二区| 一区二区在线观看不卡| 日韩av二区在线播放| 国产精品一区二区三区乱码| 91麻豆自制传媒国产之光| 在线不卡免费欧美| 久久先锋资源网| 一区二区三区精品| 麻豆免费精品视频| 不卡av电影在线播放| 9191精品国产综合久久久久久| 欧美成人国产一区二区| 国产精品传媒入口麻豆| 日本成人中文字幕| 成人黄页在线观看| 91精品国产福利在线观看| 国产清纯美女被跳蛋高潮一区二区久久w| 综合网在线视频| 久久精品国产免费| 91在线小视频| 久久亚洲一级片| 午夜一区二区三区视频| 国产夫妻精品视频| 欧美日韩久久久| 综合在线观看色| 国产综合久久久久影院| 欧美色偷偷大香| 中文字幕亚洲成人| 狠狠久久亚洲欧美| 欧美色中文字幕| 国产精品欧美久久久久一区二区 | 亚洲精品视频在线观看网站| 美女诱惑一区二区| 91久久精品一区二区二区| 久久夜色精品一区| 免费看精品久久片| 色欧美片视频在线观看在线视频| 国产亚洲人成网站| 日本亚洲电影天堂| 色偷偷久久一区二区三区| 日本一区二区三区免费乱视频| 日韩精品电影一区亚洲| 色吧成人激情小说| 国产视频视频一区| 国产在线精品一区二区三区不卡| 欧美日本一区二区三区四区| 亚洲天天做日日做天天谢日日欢 | 日本成人在线看| 91精品国产综合久久国产大片| 亚洲自拍另类综合| 色婷婷一区二区三区四区| 国产精品毛片大码女人| 成人黄色一级视频| 中文久久乱码一区二区| 成熟亚洲日本毛茸茸凸凹| 久久精品男人天堂av| 精品在线你懂的| 欧美xxxx在线观看| 国内久久精品视频| 国产亚洲精品资源在线26u| 国产一区二区三区| 久久久亚洲精品一区二区三区| 久久99精品国产|