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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ordinal.c

?? 一個類似windows
?? C
?? 第 1 頁 / 共 5 頁
字號:

    IUnknown_Release(lpContainer);
  }
  return hRet;
}

/*************************************************************************
 *	@	[SHLWAPI.169]
 *
 * Release an interface.
 *
 * PARAMS
 *  lpUnknown [I] Object to release
 *
 * RETURNS
 *  Nothing.
 */
DWORD WINAPI IUnknown_AtomicRelease(IUnknown ** lpUnknown)
{
    IUnknown *temp;

    TRACE("(%p)\n",lpUnknown);

    if(!lpUnknown || !*((LPDWORD)lpUnknown)) return 0;
    temp = *lpUnknown;
    *lpUnknown = NULL;

    TRACE("doing Release\n");

    return IUnknown_Release(temp);
}

/*************************************************************************
 *      @	[SHLWAPI.170]
 *
 * Skip '//' if present in a string.
 *
 * PARAMS
 *  lpszSrc [I] String to check for '//'
 *
 * RETURNS
 *  Success: The next character after the '//' or the string if not present
 *  Failure: NULL, if lpszStr is NULL.
 */
LPCSTR WINAPI PathSkipLeadingSlashesA(LPCSTR lpszSrc)
{
  if (lpszSrc && lpszSrc[0] == '/' && lpszSrc[1] == '/')
    lpszSrc += 2;
  return lpszSrc;
}

/*************************************************************************
 *      @		[SHLWAPI.171]
 *
 * Check if two interfaces come from the same object.
 *
 * PARAMS
 *   lpInt1 [I] Interface to check against lpInt2.
 *   lpInt2 [I] Interface to check against lpInt1.
 *
 * RETURNS
 *   TRUE, If the interfaces come from the same object.
 *   FALSE Otherwise.
 */
BOOL WINAPI SHIsSameObject(IUnknown* lpInt1, IUnknown* lpInt2)
{
  LPVOID lpUnknown1, lpUnknown2;

  TRACE("%p %p\n", lpInt1, lpInt2);

  if (!lpInt1 || !lpInt2)
    return FALSE;

  if (lpInt1 == lpInt2)
    return TRUE;

  if (!SUCCEEDED(IUnknown_QueryInterface(lpInt1, &IID_IUnknown,
                                       (LPVOID *)&lpUnknown1)))
    return FALSE;

  if (!SUCCEEDED(IUnknown_QueryInterface(lpInt2, &IID_IUnknown,
                                       (LPVOID *)&lpUnknown2)))
    return FALSE;

  if (lpUnknown1 == lpUnknown2)
    return TRUE;

  return FALSE;
}

/*************************************************************************
 *      @	[SHLWAPI.172]
 *
 * Get the window handle of an object.
 *
 * PARAMS
 *  lpUnknown [I] Object to get the window handle of
 *  lphWnd    [O] Destination for window handle
 *
 * RETURNS
 *  Success: S_OK. lphWnd contains the objects window handle.
 *  Failure: An HRESULT error code.
 *
 * NOTES
 *  lpUnknown is expected to support one of the following interfaces:
 *  IOleWindow(), IInternetSecurityMgrSite(), or IShellView().
 */
HRESULT WINAPI IUnknown_GetWindow(IUnknown *lpUnknown, HWND *lphWnd)
{
  /* FIXME: Wine has no header for this object */
  static const GUID IID_IInternetSecurityMgrSite = { 0x79eac9ed,
    0xbaf9, 0x11ce, { 0x8c, 0x82, 0x00, 0xaa, 0x00, 0x4b, 0xa9, 0x0b }};
  IUnknown *lpOle;
  HRESULT hRet = E_FAIL;

  TRACE("(%p,%p)\n", lpUnknown, lphWnd);

  if (!lpUnknown)
    return hRet;

  hRet = IUnknown_QueryInterface(lpUnknown, &IID_IOleWindow, (void**)&lpOle);

  if (FAILED(hRet))
  {
    hRet = IUnknown_QueryInterface(lpUnknown,&IID_IShellView, (void**)&lpOle);

    if (FAILED(hRet))
    {
      hRet = IUnknown_QueryInterface(lpUnknown, &IID_IInternetSecurityMgrSite,
                                      (void**)&lpOle);
    }
  }

  if (SUCCEEDED(hRet))
  {
    /* Lazyness here - Since GetWindow() is the first method for the above 3
     * interfaces, we use the same call for them all.
     */
    hRet = IOleWindow_GetWindow((IOleWindow*)lpOle, lphWnd);
    IUnknown_Release(lpOle);
    if (lphWnd)
      TRACE("Returning HWND=%p\n", *lphWnd);
  }

  return hRet;
}

/*************************************************************************
 *      @	[SHLWAPI.173]
 *
 * Call a method on as as yet unidentified object.
 *
 * PARAMS
 *  pUnk [I] Object supporting the unidentified interface,
 *  arg  [I] Argument for the call on the object.
 *
 * RETURNS
 *  S_OK.
 */
HRESULT WINAPI IUnknown_SetOwner(IUnknown *pUnk, ULONG arg)
{
  static const GUID guid_173 = {
    0x5836fb00, 0x8187, 0x11cf, { 0xa1,0x2b,0x00,0xaa,0x00,0x4a,0xe8,0x37 }
  };
  IMalloc *pUnk2;

  TRACE("(%p,%ld)\n", pUnk, arg);

  /* Note: arg may not be a ULONG and pUnk2 is for sure not an IMalloc -
   *       We use this interface as its vtable entry is compatible with the
   *       object in question.
   * FIXME: Find out what this object is and where it should be defined.
   */
  if (pUnk &&
      SUCCEEDED(IUnknown_QueryInterface(pUnk, &guid_173, (void**)&pUnk2)))
  {
    IMalloc_Alloc(pUnk2, arg); /* Faked call!! */
    IMalloc_Release(pUnk2);
  }
  return S_OK;
}

/*************************************************************************
 *      @	[SHLWAPI.174]
 *
 * Call either IObjectWithSite_SetSite() or IInternetSecurityManager_SetSecuritySite() on
 * an object.
 *
 */
HRESULT WINAPI IUnknown_SetSite(
        IUnknown *obj,        /* [in]   OLE object     */
        IUnknown *site)       /* [in]   Site interface */
{
    HRESULT hr;
    IObjectWithSite *iobjwithsite;
    IInternetSecurityManager *isecmgr;

    if (!obj) return E_FAIL;

    hr = IUnknown_QueryInterface(obj, &IID_IObjectWithSite, (LPVOID *)&iobjwithsite);
    TRACE("IID_IObjectWithSite QI ret=%08lx, %p\n", hr, iobjwithsite);
    if (SUCCEEDED(hr))
    {
	hr = IObjectWithSite_SetSite(iobjwithsite, site);
	TRACE("done IObjectWithSite_SetSite ret=%08lx\n", hr);
	IUnknown_Release(iobjwithsite);
    }
    else
    {
	hr = IUnknown_QueryInterface(obj, &IID_IInternetSecurityManager, (LPVOID *)&isecmgr);
	TRACE("IID_IInternetSecurityManager QI ret=%08lx, %p\n", hr, isecmgr);
	if (FAILED(hr)) return hr;

	hr = IInternetSecurityManager_SetSecuritySite(isecmgr, (IInternetSecurityMgrSite *)site);
	TRACE("done IInternetSecurityManager_SetSecuritySite ret=%08lx\n", hr);
	IUnknown_Release(isecmgr);
    }
    return hr;
}

/*************************************************************************
 *      @	[SHLWAPI.175]
 *
 * Call IPersist_GetClassID() on an object.
 *
 * PARAMS
 *  lpUnknown [I] Object supporting the IPersist interface
 *  lpClassId [O] Destination for Class Id
 *
 * RETURNS
 *  Success: S_OK. lpClassId contains the Class Id requested.
 *  Failure: E_FAIL, If lpUnknown is NULL,
 *           E_NOINTERFACE If lpUnknown does not support IPersist,
 *           Or an HRESULT error code.
 */
HRESULT WINAPI IUnknown_GetClassID(IUnknown *lpUnknown, CLSID* lpClassId)
{
  IPersist* lpPersist;
  HRESULT hRet = E_FAIL;

  TRACE("(%p,%p)\n", lpUnknown, debugstr_guid(lpClassId));

  if (lpUnknown)
  {
    hRet = IUnknown_QueryInterface(lpUnknown,&IID_IPersist,(void**)&lpPersist);
    if (SUCCEEDED(hRet))
    {
      IPersist_GetClassID(lpPersist, lpClassId);
      IPersist_Release(lpPersist);
    }
  }
  return hRet;
}

/*************************************************************************
 *      @	[SHLWAPI.176]
 *
 * Retrieve a Service Interface from an object.
 *
 * PARAMS
 *  lpUnknown [I] Object to get an IServiceProvider interface from
 *  sid       [I] Service ID for IServiceProvider_QueryService() call
 *  riid      [I] Function requested for QueryService call
 *  lppOut    [O] Destination for the service interface pointer
 *
 * RETURNS
 *  Success: S_OK. lppOut contains an object providing the requested service
 *  Failure: An HRESULT error code
 *
 * NOTES
 *  lpUnknown is expected to support the IServiceProvider interface.
 */
HRESULT WINAPI IUnknown_QueryService(IUnknown* lpUnknown, REFGUID sid, REFIID riid,
                           LPVOID *lppOut)
{
  IServiceProvider* pService = NULL;
  HRESULT hRet;

  if (!lppOut)
    return E_FAIL;

  *lppOut = NULL;

  if (!lpUnknown)
    return E_FAIL;

  /* Get an IServiceProvider interface from the object */
  hRet = IUnknown_QueryInterface(lpUnknown, &IID_IServiceProvider,
                                 (LPVOID*)&pService);

  if (!hRet && pService)
  {
    TRACE("QueryInterface returned (IServiceProvider*)%p\n", pService);

    /* Get a Service interface from the object */
    hRet = IServiceProvider_QueryService(pService, sid, riid, lppOut);

    TRACE("(IServiceProvider*)%p returned (IUnknown*)%p\n", pService, *lppOut);

    /* Release the IServiceProvider interface */
    IUnknown_Release(pService);
  }
  return hRet;
}

/*************************************************************************
 *      @	[SHLWAPI.177]
 *
 * Loads a popup menu.
 *
 * PARAMS
 *  hInst  [I] Instance handle
 *  szName [I] Menu name
 *
 * RETURNS
 *  Success: TRUE.
 *  Failure: FALSE.
 */
BOOL WINAPI SHLoadMenuPopup(HINSTANCE hInst, LPCWSTR szName)
{
  HMENU hMenu, hSubMenu;

  if ((hMenu = LoadMenuW(hInst, szName)))
  {
    if ((hSubMenu = GetSubMenu(hMenu, 0)))
      RemoveMenu(hMenu, 0, MF_BYPOSITION);

    DestroyMenu(hMenu);
    return TRUE;
  }
  return FALSE;
}

typedef struct _enumWndData
{
  UINT   uiMsgId;
  WPARAM wParam;
  LPARAM lParam;
  LRESULT (WINAPI *pfnPost)(HWND,UINT,WPARAM,LPARAM);
} enumWndData;

/* Callback for SHLWAPI_178 */
static BOOL CALLBACK SHLWAPI_EnumChildProc(HWND hWnd, LPARAM lParam)
{
  enumWndData *data = (enumWndData *)lParam;

  TRACE("(%p,%p)\n", hWnd, data);
  data->pfnPost(hWnd, data->uiMsgId, data->wParam, data->lParam);
  return TRUE;
}

/*************************************************************************
 * @  [SHLWAPI.178]
 *
 * Send or post a message to every child of a window.
 *
 * PARAMS
 *  hWnd    [I] Window whose children will get the messages
 *  uiMsgId [I] Message Id
 *  wParam  [I] WPARAM of message
 *  lParam  [I] LPARAM of message
 *  bSend   [I] TRUE = Use SendMessageA(), FALSE = Use PostMessageA()
 *
 * RETURNS
 *  Nothing.
 *
 * NOTES
 *  The appropriate ASCII or Unicode function is called for the window.
 */
void WINAPI SHPropagateMessage(HWND hWnd, UINT uiMsgId, WPARAM wParam, LPARAM lParam, BOOL bSend)
{
  enumWndData data;

  TRACE("(%p,%u,%d,%ld,%d)\n", hWnd, uiMsgId, wParam, lParam, bSend);

  if(hWnd)
  {
    data.uiMsgId = uiMsgId;
    data.wParam  = wParam;
    data.lParam  = lParam;

    if (bSend)
      data.pfnPost = IsWindowUnicode(hWnd) ? (void*)SendMessageW : (void*)SendMessageA;
    else
      data.pfnPost = IsWindowUnicode(hWnd) ? (void*)PostMessageW : (void*)PostMessageA;

    EnumChildWindows(hWnd, SHLWAPI_EnumChildProc, (LPARAM)&data);
  }
}

/*************************************************************************
 *      @	[SHLWAPI.180]
 *
 * Remove all sub-menus from a menu.
 *
 * PARAMS
 *  hMenu [I] Menu to remove sub-menus from
 *
 * RETURNS
 *  Success: 0.  All sub-menus under hMenu are removed
 *  Failure: -1, if any parameter is invalid
 */
DWORD WINAPI SHRemoveAllSubMenus(HMENU hMenu)
{
  int iItemCount = GetMenuItemCount(hMenu) - 1;
  while (iItemCount >= 0)
  {
    HMENU hSubMenu = GetSubMenu(hMenu, iItemCount);
    if (hSubMenu)
      RemoveMenu(hMenu, iItemCount, MF_BYPOSITION);
    iItemCount--;
  }
  return iItemCount;
}

/*************************************************************************
 *      @	[SHLWAPI.181]
 *
 * Enable or disable a menu item.
 *
 * PARAMS
 *  hMenu   [I] Menu holding menu item
 *  uID     [I] ID of menu item to enable/disable
 *  bEnable [I] Whether to enable (TRUE) or disable (FALSE) the item.
 *
 * RETURNS
 *  The return code from EnableMenuItem.
 */
UINT WINAPI SHEnableMenuItem(HMENU hMenu, UINT wItemID, BOOL bEnable)
{
  return EnableMenuItem(hMenu, wItemID, bEnable ? MF_ENABLED : MF_GRAYED);
}

/*************************************************************************
 * @	[SHLWAPI.182]
 *

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品成人免费在线| a4yy欧美一区二区三区| 欧美日韩黄视频| 一区二区三区四区蜜桃| 97久久精品人人爽人人爽蜜臀| 久久久久久久电影| 国产91精品久久久久久久网曝门| 久久女同精品一区二区| 国产乱码精品一区二区三区五月婷| 日韩手机在线导航| 国内精品视频666| 国产三级一区二区三区| 懂色av噜噜一区二区三区av| 国产精品三级av| 不卡高清视频专区| 夜夜精品浪潮av一区二区三区| 欧美三级资源在线| 蓝色福利精品导航| 日韩女优av电影在线观看| 国产一区二区网址| 中文成人av在线| 欧美影院午夜播放| 久久精品国产在热久久| 国产亚洲1区2区3区| 成人av一区二区三区| 一卡二卡欧美日韩| 日韩一级二级三级精品视频| 国产麻豆精品视频| 亚洲美腿欧美偷拍| 日韩一级二级三级精品视频| 成人免费视频一区| 亚洲午夜三级在线| 久久天天做天天爱综合色| 99久久精品国产导航| 亚洲va欧美va人人爽| 久久综合九色综合欧美98| 91原创在线视频| 美女一区二区在线观看| 中文字幕日韩精品一区| 91麻豆精品国产91久久久久久 | 亚洲欧美一区二区久久| 欧美日韩亚洲另类| 国产精品一区二区三区四区 | 日韩一本二本av| 99视频精品全部免费在线| 青青草原综合久久大伊人精品| 中文字幕精品一区二区三区精品| 91久久精品网| 91在线观看地址| 精品亚洲成a人在线观看| 一区二区三区四区国产精品| 精品国产乱码久久久久久夜甘婷婷 | 亚洲综合另类小说| 国产欧美日本一区二区三区| 欧美精品国产精品| 91视频国产资源| 国产大陆亚洲精品国产| 日韩在线观看一区二区| 专区另类欧美日韩| 国产日韩欧美a| 欧美一卡2卡三卡4卡5免费| 91蝌蚪porny成人天涯| 风流少妇一区二区| 国内久久婷婷综合| 免费高清视频精品| 欧美丰满嫩嫩电影| 日韩理论片中文av| 日韩精品综合一本久道在线视频| 韩国女主播一区| 日韩黄色免费网站| 亚洲成av人片在www色猫咪| 自拍偷拍欧美激情| 久久精品免视看| 2014亚洲片线观看视频免费| 欧美电影一区二区三区| av在线不卡观看免费观看| 国产精品一区二区91| 久久精品99国产精品| 丝袜a∨在线一区二区三区不卡| 亚洲欧洲三级电影| 欧美国产丝袜视频| 国产色一区二区| 亚洲国产激情av| 国产欧美日韩精品一区| 26uuu成人网一区二区三区| 日韩一区二区电影| 精品精品欲导航| 91麻豆精品国产91久久久资源速度| 欧美性生活大片视频| 欧美视频精品在线观看| 欧美精品久久天天躁| 91精品国产综合久久蜜臀| 制服丝袜亚洲精品中文字幕| 欧美一区二区精美| 欧美成人高清电影在线| 久久综合九色综合97婷婷| 久久久久久久精| **性色生活片久久毛片| 亚洲欧美视频在线观看视频| 成人av综合一区| 91色视频在线| 欧美日韩亚洲综合一区 | 尤物av一区二区| 亚洲一线二线三线视频| 日韩国产高清在线| 精品一区二区三区不卡| 成人免费看视频| 91久久免费观看| 日韩欧美卡一卡二| 中文字幕欧美三区| 一区二区三区精品在线观看| 日韩黄色免费电影| 国产成人午夜99999| 色婷婷久久综合| 日韩欧美国产不卡| 国产精品每日更新| 天堂蜜桃91精品| 国产精品18久久久| 91年精品国产| 日韩亚洲欧美高清| 亚洲国产精品国自产拍av| 亚洲综合一二三区| 国产一区二区三区视频在线播放| 91网站最新网址| 日韩一级大片在线| 成人免费一区二区三区在线观看| 亚洲mv大片欧洲mv大片精品| 久久草av在线| 色婷婷av久久久久久久| 精品国产欧美一区二区| 一区二区三区四区国产精品| 激情成人综合网| 欧美最猛性xxxxx直播| 久久亚洲精品小早川怜子| 伊人色综合久久天天人手人婷| 久久国产尿小便嘘嘘| 一本大道av一区二区在线播放| 欧美mv日韩mv国产| 亚洲网友自拍偷拍| 成人av网站大全| 精品久久久久一区| 亚洲成人激情社区| 成人av在线播放网站| 欧美成人精品二区三区99精品| 一区二区三区成人在线视频| 国产乱一区二区| 91精品午夜视频| 一区二区三区国产精华| 成人av影视在线观看| 精品国产伦理网| 免费在线观看视频一区| 在线观看视频91| 亚洲三级在线免费| 岛国精品在线播放| 2014亚洲片线观看视频免费| 日本不卡视频一二三区| 欧美三区在线视频| 亚洲伦理在线精品| av一二三不卡影片| 国产精品―色哟哟| 成人午夜av影视| 国产蜜臀97一区二区三区| 久久狠狠亚洲综合| 欧美一区二区视频观看视频| 亚洲国产日韩a在线播放性色| 99久久伊人精品| 国产精品久久网站| 大桥未久av一区二区三区中文| 2021国产精品久久精品| 九九**精品视频免费播放| 欧美一卡二卡在线观看| 免费精品99久久国产综合精品| 5858s免费视频成人| 水蜜桃久久夜色精品一区的特点 | 中文字幕制服丝袜成人av| 国产成人福利片| 国产女人水真多18毛片18精品视频| 久久99精品国产麻豆婷婷| 日韩视频在线永久播放| 麻豆精品新av中文字幕| 欧美变态凌虐bdsm| 国内外成人在线视频| 国产性天天综合网| 99r国产精品| 亚洲综合图片区| 欧美精三区欧美精三区| 日本视频一区二区三区| 日韩欧美国产1| 国产mv日韩mv欧美| 亚洲免费在线观看视频| 欧美三级一区二区| 亚洲图片一区二区| 欧美一区二区国产| 国产老肥熟一区二区三区| 国产女人18水真多18精品一级做 | 91麻豆123| 午夜日韩在线电影| 日韩欧美一卡二卡| 国产成人精品亚洲777人妖| 18成人在线观看|