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

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

?? oleinst.c

?? 英文版的 想要的話可以下載了 為大家服務
?? C
字號:
/*
 * OLEINST.C
 *
 * OLE-Specific installation-time functions that should be performed
 * once when the application is first added to the system.
 *
 * Note that there are embedded strings in this file.  We do not use
 * strings from the application wide source in rgpsz since we want this
 * module to be reusable in installation programs.
 *
 * Copyright(c) Microsoft Corp. 1992-1994 All Rights Reserved
 * Win32 version, January 1994
 */


#ifdef MAKEOLESERVER

#include <windows.h>
#include "cosmo.h"
#include "oleinst.h"


/*
 * FRegDBInstall
 *
 * Purpose:
 *  Handles any installations the applciation must handle for the
 *  registration database.  In this application, we just set up to
 *  call FOLEInstall that handles the OLE specific strings.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  BOOL            TRUE if installation succeeded, FALSE otherwise.
 *
 */

BOOL FAR PASCAL FRegDBInstall(void)
    {
    REGINSTALL  ri;
    HMODULE     hMod;
    LPSTR       rgszVerbs[OBJVERB_MAX];
    char        szPath[CCHPATHMAX];

    /*
     * Fill the REGINSTALL structure for calling FOLEServerInstall.
     * Must do this after the strings are loaded since we use strings
     * from the stringtable.
     */
    ri.pszServerName    =(LPSTR)rgpsz[IDS_FULLNAME];
    ri.pszServerClass   =(LPSTR)rgpsz[IDS_CLASSCOSMO];
    ri.pszHandlerPath   =(LPSTR)NULL;
    ri.pszExt           =(LPSTR)rgpsz[IDS_DOTEXT];
    ri.pszSetFormats    =(LPSTR)rgpsz[IDS_NATIVE];
    ri.pszRequestFormats=(LPSTR)rgpsz[IDS_DATAFORMATS];
    ri.fExecute         =FALSE;

    //Get the module path
    hMod=GetModuleHandle(rgpsz[IDS_MODULE]);

    if (NULL==hMod)
        return FALSE;

    GetModuleFileName(hMod, szPath, CCHPATHMAX);

    ri.pszServerPath    =(LPSTR)szPath;

    //Fill the array of pointers to verbs.
    rgszVerbs[OBJVERB_EDIT]=(LPSTR)rgpsz[IDS_VERBEDIT];

    ri.ppszVerbs        =rgszVerbs;
    ri.cVerbs           =OBJVERB_MAX;

    return FOLEServerInstall(&ri);
    }





/*
 * FOLEServerInstall
 *
 * Purpose:
 *  Registers the server application and it's editable data types
 *  with the registration database through the SHELL.DLL functions.
 *
 *  This function will register the server in the database if it
 *  is not there already.
 *
 * Limitations:
 *  FOLEServerInstall supports only a single class of data.
 *
 * Parameters:
 *  pszServer       LPSTR name of the server.
 *  pszData         LPSTR name of the data edited by the server.
 *
 * Return Value:
 *  BOOL            TRUE if registration took place or the application
 *                  was already registered, FALSE otherwise.
 */


BOOL FAR PASCAL FOLEServerInstall(LPREGINSTALL lpRI)
    {
    char        szKey[128];
    char        szTemp[20];
    DWORD       dw=128;
    LONG        lRet;
    UINT        iVerb;
    LPSTR       *ppsz;

    //Check if this server is already around.
    lRet=RegQueryValue(HKEY_CLASSES_ROOT, lpRI->pszServerClass, szKey, &dw);

    if ((LONG)ERROR_SUCCESS==lRet)
        return TRUE;


    /*
     * Add various strings to the registration database:
     *  1.  English-readable class name.
     *  2.  Simple class name.
     *  3.  Full path to the server executable.
     *  4.  Full path to the handler DLL, if available.
     *  5.  Verbs
     *  6.  Any formats supported through OleSetData and OleRequestData.
     *  7.  Full application path if the server supports StdExecute.
     */

    //Validate essential strings
    if (NULL==lpRI->pszServerClass)
        return FALSE;

    if (NULL==lpRI->pszServerName)
        return FALSE;

    if (NULL==lpRI->pszServerPath)
        return FALSE;

    if (NULL==lpRI->pszExt)
        return FALSE;

    if (NULL==lpRI->ppszVerbs || 0==lpRI->cVerbs)
        return FALSE;


    //1. English class name.  Subkey is ""
    FKeyCreate(lpRI->pszServerClass, rgpsz[IDS_EMPTY], lpRI->pszServerName);


    //2. Simple class name associated with the file extension.  Subkey is ""
    FKeyCreate(lpRI->pszExt, rgpsz[IDS_EMPTY], lpRI->pszServerClass);


    /*
     * The server path, handler path, and verbs are all part of
     * the \\classname\\protocol\\StdFileEditing\\ key.  Before
     * creating any of the keys, create a string with the class
     * name embedded.
     */
    wsprintf(szKey, "%s\\protocol\\StdFileEditing\\", lpRI->pszServerClass);


    //3. Server path, append "server" onto szKey.
    FKeyCreate(szKey, "server", lpRI->pszServerPath);

    //4. Add the handler path, if one exists, appening "handler" on szKey.
    if (NULL!=lpRI->pszHandlerPath)
        FKeyCreate(szKey, "handler", lpRI->pszHandlerPath);

    //5.  Add each verb.  Append to szKey "verb\\n" where n is a simple count.
    ppsz=lpRI->ppszVerbs;

    for (iVerb=0; iVerb < lpRI->cVerbs; iVerb++)
        {
        //Create key and skip to next verb.
        wsprintf(szTemp, "verb\\%d", iVerb);
        FKeyCreate(szKey, szTemp, *ppsz++);
        }


    //6. Add the strings for formats, to "SetDataFormats" and "RequestDataFormats"
    if (NULL!=lpRI->pszSetFormats)
        FKeyCreate(szKey, "SetDataFormats", lpRI->pszSetFormats);

    if (NULL!=lpRI->pszSetFormats)
        FKeyCreate(szKey, "RequestDataFormats", lpRI->pszRequestFormats);


    //7. Add the StdExecute string, appending the server path.
    if (lpRI->fExecute)
        {
        wsprintf(szKey, "%s\\protocol\\StdExecute\\", lpRI->pszServerClass);
        FKeyCreate(szKey, "server", lpRI->pszServerPath);
        }

    return TRUE;
    }



/*
 * FKeyCreate
 *
 * Purpose:
 *  Short function to simplify the key creation process, centralizing
 *  calls to RegCreateKey, RegSetValue, and RegCloseKey.  If the RegSetValue
 *  fails, the key is deleted with RegDeleteKey.
 *
 * Parameters:
 *  pszKey          LPSTR to keyname.
 *  pszSubKey       LPSTR to last word in keyname.  This parameter is
 *                  separate to enable calling RegDeleteKey on error.
 *  pszValue        LPSTR to value to associate with keyname.
 *
 * Return Value:
 *  BOOL            TRUE if registration succeeded, FALSE otherwise.
 */

BOOL PASCAL FKeyCreate(LPSTR pszKey, LPSTR pszSubKey, LPSTR pszValue)
    {
    char        szKey[128];
    HKEY        hKey;
    UINT        cch;
    LONG        lRet;

    cch=lstrlen(pszValue)+1;

    lstrcpy(szKey, pszKey);
    lstrcat(szKey, pszSubKey);

    lRet=RegCreateKey(HKEY_CLASSES_ROOT, szKey, &hKey);

    if (lRet!=ERROR_SUCCESS)
        return FALSE;


    lRet=RegSetValue(HKEY_CLASSES_ROOT, szKey, REG_SZ, pszValue, cch);

    if (lRet!=ERROR_SUCCESS)
        {
        //Delete key if we could not set a value.
        RegDeleteKey(hKey, pszSubKey);
        return FALSE;
        }

    lRet=RegCloseKey(hKey);

    if (lRet!=ERROR_SUCCESS)
        return FALSE;

    return TRUE;
    }



#endif   //MAKEOLESERVER

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃91丨九色丨蝌蚪91桃色| 欧美变态tickling挠脚心| 国产乱理伦片在线观看夜一区| 欧美日韩国产首页| 久久蜜桃av一区二区天堂 | 伊人色综合久久天天人手人婷| 亚洲第一二三四区| 久久 天天综合| 亚洲黄色片在线观看| 久久国产婷婷国产香蕉| 97成人超碰视| 欧美久久久久久久久| 欧美老人xxxx18| 国产免费观看久久| 首页国产欧美久久| 成人av网站免费| 欧美成人video| 亚洲码国产岛国毛片在线| 免费观看一级欧美片| 天天操天天综合网| 色噜噜狠狠一区二区三区果冻| 奇米影视一区二区三区| 狠狠色丁香久久婷婷综合_中| 波多野结衣欧美| 欧美一级生活片| 亚洲人成网站在线| 国产91精品在线观看| 丁香天五香天堂综合| 日韩午夜av一区| 亚洲3atv精品一区二区三区| 国产一区二区毛片| 4438x成人网最大色成网站| 国产丝袜美腿一区二区三区| 日本vs亚洲vs韩国一区三区二区| 国产xxx精品视频大全| 91精品国产品国语在线不卡| 国产精品国产精品国产专区不蜜| 久久精品国产亚洲a| 波多野结衣亚洲一区| 亚洲美女在线一区| 欧美视频完全免费看| 91网上在线视频| 国产精品久久影院| 国产精品1024| 7777精品伊人久久久大香线蕉| 亚洲男帅同性gay1069| 99国产精品久久久久久久久久| 日韩亚洲欧美中文三级| 人人狠狠综合久久亚洲| 欧美日韩国产欧美日美国产精品| 欧美一区二区三区系列电影| 免费美女久久99| 欧美一区二区三区的| 亚洲国产欧美一区二区三区丁香婷| av不卡免费电影| 亚洲精品视频观看| 91视频一区二区| 亚洲一区在线播放| 欧美一区二区三区影视| 亚洲精品欧美激情| 在线观看区一区二| 91精品国产综合久久国产大片| 成人动漫在线一区| 日本韩国欧美国产| 午夜一区二区三区视频| 日本道免费精品一区二区三区| 亚洲一区二区在线免费观看视频| 欧美色图片你懂的| 亚洲女爱视频在线| 色综合久久综合中文综合网| 亚洲另类中文字| 91首页免费视频| 日韩免费高清电影| 久久99精品一区二区三区三区| 日韩午夜在线影院| 激情国产一区二区| 国产精品国产精品国产专区不片| 欧美最猛性xxxxx直播| 日韩成人午夜精品| 中文字幕乱码亚洲精品一区| 欧美主播一区二区三区| 蜜臀av性久久久久av蜜臀妖精 | 91精品国产欧美一区二区| 国产欧美一区二区精品秋霞影院| 国产一区不卡在线| 欧美中文字幕亚洲一区二区va在线| 亚洲制服欧美中文字幕中文字幕| 九九**精品视频免费播放| 久久综合九色综合97婷婷| 成人动漫精品一区二区| 亚洲一区二区欧美| 国产精品美女www爽爽爽| 欧美午夜理伦三级在线观看| 亚洲人成精品久久久久| 亚洲免费三区一区二区| 欧美男生操女生| 国产麻豆精品久久一二三| 亚洲欧美日韩久久| 欧美日韩日日摸| 成人污污视频在线观看| 亚洲麻豆国产自偷在线| 国产亚洲一区字幕| 成人小视频免费在线观看| 国产精品成人午夜| 欧美日本视频在线| 国产在线乱码一区二区三区| 国产精品国产精品国产专区不片 | 国产69精品久久99不卡| 亚洲一二三区在线观看| 欧美一级欧美三级在线观看| 成人性视频免费网站| 蜜桃视频在线一区| 午夜亚洲国产au精品一区二区| 国产精品天干天干在观线| 欧美伊人久久久久久久久影院 | 欧美一区中文字幕| 成人h动漫精品| 三级精品在线观看| 亚洲精品免费在线| 中文字幕视频一区| 久久久久国产精品厨房| 久久久777精品电影网影网| 欧美一级理论性理论a| 99国产精品国产精品毛片| 成人精品视频一区二区三区| 久久精品国产精品青草| 亚洲一二三专区| 亚洲男人的天堂网| 亚洲精品国产一区二区精华液 | 欧美猛男gaygay网站| 欧美亚洲精品一区| 色综合久久中文字幕综合网| 国产精品一区二区无线| 国产一区二区女| 国产精品一区二区免费不卡| 亚洲va欧美va人人爽| 丝袜a∨在线一区二区三区不卡| 亚洲gay无套男同| 日本中文字幕一区二区视频| 国内精品伊人久久久久av一坑| 亚洲欧美日韩一区二区三区在线观看| 欧美激情一区二区三区| 亚洲欧美另类久久久精品2019| 亚洲丝袜美腿综合| 亚洲精品乱码久久久久久黑人| 亚洲成人777| 蜜臀va亚洲va欧美va天堂| 国内精品免费**视频| 99精品桃花视频在线观看| 在线区一区二视频| 99精品欧美一区二区三区小说 | 国产原创一区二区三区| 成人一级片网址| 欧美中文字幕一二三区视频| 欧美伦理电影网| 久久精品视频在线看| 国产精品福利在线播放| 夜夜精品视频一区二区| 国产呦萝稀缺另类资源| 成人免费的视频| 欧美日韩午夜精品| 亚洲国产高清在线观看视频| 亚洲精品videosex极品| 五月婷婷久久丁香| 不卡在线视频中文字幕| 色94色欧美sute亚洲线路二| 久久久夜色精品亚洲| 亚洲欧美日韩综合aⅴ视频| 日韩国产精品久久久久久亚洲| 大胆欧美人体老妇| 欧美视频一区二区三区在线观看| 欧美日韩视频一区二区| 欧美国产一区在线| 午夜精品免费在线| 国产一区二区三区不卡在线观看| 91在线视频免费91| 欧美一区二区三区人| 自拍偷拍欧美激情| 国精品**一区二区三区在线蜜桃| 国产成人在线免费观看| 欧美电影在线免费观看| 亚洲国产精品激情在线观看| 国产精品久久久久国产精品日日| 欧美一区二区三区日韩| 久久久久久麻豆| 欧美亚洲一区二区在线| 国产精品美女久久久久aⅴ | 久久午夜羞羞影院免费观看| 国产精品国产三级国产普通话99 | 成人午夜视频免费看| 91精品国产乱码久久蜜臀| 一区二区三区在线免费| 夫妻av一区二区| 日韩欧美色电影| 免费视频一区二区| 欧美一级高清片在线观看| 日韩av电影免费观看高清完整版| 在线观看日韩国产| 亚洲高清免费一级二级三级| 欧美日韩中字一区|