This commit is contained in:
2024-08-07 09:16:27 -04:00
parent fdfadd5c7e
commit 5f971cf684
5200 changed files with 731717 additions and 0 deletions

951
proto/Debug/Historic.java Normal file
View File

@@ -0,0 +1,951 @@
package zbi.risk.server.vhi.mapped
public class Historic
{
private Timestamp tradeDate;
private String tradeDateTxt;
private String portfolio;
private String subPortfolio;
private String ticker;
private String tickerDesc;
private String uticker;
private String instrument;
private float mktCap;
private float wgtAve;
private float volume;
private float contractSize;
private String hedgeIndex;
private String hedgeSector;
private String area;
private String areaSector;
private float [close];
private float yClose;
private float utickerClose;
private float yUtickerClose;
private float delta;
private float yDelta;
private int daysExpire;
private float strikePrice;
private float hedgeBeta;
private float areaBeta;
private float sectorBeta;
private float groupBeta;
private float qty;
private float yQty;
private float qtyChange;
private float hedgeClose;
private float hedgePerc;
private float areaClose;
private float areaPerc;
private float sectorClose;
private float sectorPerc;
private float mktValue;
private float yMktValue;
private float pnl;
private float exposure;
private float yExposure;
private float hbExposure;
private float yHbExposure;
private float abExposure;
private float yAbExposure;
private float sbExposure;
private float ySbExposure;
private float areaPnlAmt;
private float sectorPnlAmt;
private float pnlPerc;
private float priceChange;
private float priceChangePerc;
private float priceChangeAmt;
private float sectorAlphaPerc;
private float groupAlphaPerc;
private float areaAlphaPerc;
private float sectorAlphaAmt;
private float groupAlphaAmt;
private float areaAlphaAmt;
private float abReturnAmt;
private float abReturnPerc;
private float intradayPerc;
private float intradayAmt;
private float optionalityAmt;
private float optionalityPerc;
private String currency;
private float baseClose;
private float yBaseClose;
private float fxPerc;
private float fxAmt;
private float fxRate;
private float yFxRate;
private float altIndexReturnPerc;
private float altIndexReturnAmt;
private float indexBetaAdjPerc;
private float indexBetaAdjAmt;
private float vwap;
private float vwapPnl;
private float hedgeAlphaAmt;
private String exposureView;
private String marketView;
private String callPut;
private String [month];
private boolean private;
private boolean ipo;
private float ratio;
private String source;
private Timestamp goAround;
private float adh;
private float aac;
private float azap;
private boolean exported;
private float hedgeAlphaPerc;
private float alphaGoAround;
private float alphaReal;
private float alphaUnreal;
private float pnlReal;
private float pnlUnreal;
private float cashFlow;
private float betaCashFlow;
private Timestamp lastTradeDate;
private float lastTradeQty;
private float enterpriseValue;
private String associate;
public Timestamp getTradeDate()
{
return tradeDate;
}
public void setTradeDate(Timestamp tradeDate)
{
this.tradeDate=tradeDate;
}
public String getTradeDateTxt()
{
return tradeDateTxt;
}
public void setTradeDateTxt(String tradeDateTxt)
{
this.tradeDateTxt=tradeDateTxt;
}
public String getPortfolio()
{
return portfolio;
}
public void setPortfolio(String portfolio)
{
this.portfolio=portfolio;
}
public String getSubPortfolio()
{
return subPortfolio;
}
public void setSubPortfolio(String subPortfolio)
{
this.subPortfolio=subPortfolio;
}
public String getTicker()
{
return ticker;
}
public void setTicker(String ticker)
{
this.ticker=ticker;
}
public String getTickerDesc()
{
return tickerDesc;
}
public void setTickerDesc(String tickerDesc)
{
this.tickerDesc=tickerDesc;
}
public String getUticker()
{
return uticker;
}
public void setUticker(String uticker)
{
this.uticker=uticker;
}
public String getInstrument()
{
return instrument;
}
public void setInstrument(String instrument)
{
this.instrument=instrument;
}
public float getMktCap()
{
return mktCap;
}
public void setMktCap(float mktCap)
{
this.mktCap=mktCap;
}
public float getWgtAve()
{
return wgtAve;
}
public void setWgtAve(float wgtAve)
{
this.wgtAve=wgtAve;
}
public float getVolume()
{
return volume;
}
public void setVolume(float volume)
{
this.volume=volume;
}
public float getContractSize()
{
return contractSize;
}
public void setContractSize(float contractSize)
{
this.contractSize=contractSize;
}
public String getHedgeIndex()
{
return hedgeIndex;
}
public void setHedgeIndex(String hedgeIndex)
{
this.hedgeIndex=hedgeIndex;
}
public String getHedgeSector()
{
return hedgeSector;
}
public void setHedgeSector(String hedgeSector)
{
this.hedgeSector=hedgeSector;
}
public String getArea()
{
return area;
}
public void setArea(String area)
{
this.area=area;
}
public String getAreaSector()
{
return areaSector;
}
public void setAreaSector(String areaSector)
{
this.areaSector=areaSector;
}
public float get[close]()
{
return [close];
}
public void set[close](float [close])
{
this.[close]=[close];
}
public float getYClose()
{
return yClose;
}
public void setYClose(float yClose)
{
this.yClose=yClose;
}
public float getUtickerClose()
{
return utickerClose;
}
public void setUtickerClose(float utickerClose)
{
this.utickerClose=utickerClose;
}
public float getYUtickerClose()
{
return yUtickerClose;
}
public void setYUtickerClose(float yUtickerClose)
{
this.yUtickerClose=yUtickerClose;
}
public float getDelta()
{
return delta;
}
public void setDelta(float delta)
{
this.delta=delta;
}
public float getYDelta()
{
return yDelta;
}
public void setYDelta(float yDelta)
{
this.yDelta=yDelta;
}
public int getDaysExpire()
{
return daysExpire;
}
public void setDaysExpire(int daysExpire)
{
this.daysExpire=daysExpire;
}
public float getStrikePrice()
{
return strikePrice;
}
public void setStrikePrice(float strikePrice)
{
this.strikePrice=strikePrice;
}
public float getHedgeBeta()
{
return hedgeBeta;
}
public void setHedgeBeta(float hedgeBeta)
{
this.hedgeBeta=hedgeBeta;
}
public float getAreaBeta()
{
return areaBeta;
}
public void setAreaBeta(float areaBeta)
{
this.areaBeta=areaBeta;
}
public float getSectorBeta()
{
return sectorBeta;
}
public void setSectorBeta(float sectorBeta)
{
this.sectorBeta=sectorBeta;
}
public float getGroupBeta()
{
return groupBeta;
}
public void setGroupBeta(float groupBeta)
{
this.groupBeta=groupBeta;
}
public float getQty()
{
return qty;
}
public void setQty(float qty)
{
this.qty=qty;
}
public float getYQty()
{
return yQty;
}
public void setYQty(float yQty)
{
this.yQty=yQty;
}
public float getQtyChange()
{
return qtyChange;
}
public void setQtyChange(float qtyChange)
{
this.qtyChange=qtyChange;
}
public float getHedgeClose()
{
return hedgeClose;
}
public void setHedgeClose(float hedgeClose)
{
this.hedgeClose=hedgeClose;
}
public float getHedgePerc()
{
return hedgePerc;
}
public void setHedgePerc(float hedgePerc)
{
this.hedgePerc=hedgePerc;
}
public float getAreaClose()
{
return areaClose;
}
public void setAreaClose(float areaClose)
{
this.areaClose=areaClose;
}
public float getAreaPerc()
{
return areaPerc;
}
public void setAreaPerc(float areaPerc)
{
this.areaPerc=areaPerc;
}
public float getSectorClose()
{
return sectorClose;
}
public void setSectorClose(float sectorClose)
{
this.sectorClose=sectorClose;
}
public float getSectorPerc()
{
return sectorPerc;
}
public void setSectorPerc(float sectorPerc)
{
this.sectorPerc=sectorPerc;
}
public float getMktValue()
{
return mktValue;
}
public void setMktValue(float mktValue)
{
this.mktValue=mktValue;
}
public float getYMktValue()
{
return yMktValue;
}
public void setYMktValue(float yMktValue)
{
this.yMktValue=yMktValue;
}
public float getPnl()
{
return pnl;
}
public void setPnl(float pnl)
{
this.pnl=pnl;
}
public float getExposure()
{
return exposure;
}
public void setExposure(float exposure)
{
this.exposure=exposure;
}
public float getYExposure()
{
return yExposure;
}
public void setYExposure(float yExposure)
{
this.yExposure=yExposure;
}
public float getHbExposure()
{
return hbExposure;
}
public void setHbExposure(float hbExposure)
{
this.hbExposure=hbExposure;
}
public float getYHbExposure()
{
return yHbExposure;
}
public void setYHbExposure(float yHbExposure)
{
this.yHbExposure=yHbExposure;
}
public float getAbExposure()
{
return abExposure;
}
public void setAbExposure(float abExposure)
{
this.abExposure=abExposure;
}
public float getYAbExposure()
{
return yAbExposure;
}
public void setYAbExposure(float yAbExposure)
{
this.yAbExposure=yAbExposure;
}
public float getSbExposure()
{
return sbExposure;
}
public void setSbExposure(float sbExposure)
{
this.sbExposure=sbExposure;
}
public float getYSbExposure()
{
return ySbExposure;
}
public void setYSbExposure(float ySbExposure)
{
this.ySbExposure=ySbExposure;
}
public float getAreaPnlAmt()
{
return areaPnlAmt;
}
public void setAreaPnlAmt(float areaPnlAmt)
{
this.areaPnlAmt=areaPnlAmt;
}
public float getSectorPnlAmt()
{
return sectorPnlAmt;
}
public void setSectorPnlAmt(float sectorPnlAmt)
{
this.sectorPnlAmt=sectorPnlAmt;
}
public float getPnlPerc()
{
return pnlPerc;
}
public void setPnlPerc(float pnlPerc)
{
this.pnlPerc=pnlPerc;
}
public float getPriceChange()
{
return priceChange;
}
public void setPriceChange(float priceChange)
{
this.priceChange=priceChange;
}
public float getPriceChangePerc()
{
return priceChangePerc;
}
public void setPriceChangePerc(float priceChangePerc)
{
this.priceChangePerc=priceChangePerc;
}
public float getPriceChangeAmt()
{
return priceChangeAmt;
}
public void setPriceChangeAmt(float priceChangeAmt)
{
this.priceChangeAmt=priceChangeAmt;
}
public float getSectorAlphaPerc()
{
return sectorAlphaPerc;
}
public void setSectorAlphaPerc(float sectorAlphaPerc)
{
this.sectorAlphaPerc=sectorAlphaPerc;
}
public float getGroupAlphaPerc()
{
return groupAlphaPerc;
}
public void setGroupAlphaPerc(float groupAlphaPerc)
{
this.groupAlphaPerc=groupAlphaPerc;
}
public float getAreaAlphaPerc()
{
return areaAlphaPerc;
}
public void setAreaAlphaPerc(float areaAlphaPerc)
{
this.areaAlphaPerc=areaAlphaPerc;
}
public float getSectorAlphaAmt()
{
return sectorAlphaAmt;
}
public void setSectorAlphaAmt(float sectorAlphaAmt)
{
this.sectorAlphaAmt=sectorAlphaAmt;
}
public float getGroupAlphaAmt()
{
return groupAlphaAmt;
}
public void setGroupAlphaAmt(float groupAlphaAmt)
{
this.groupAlphaAmt=groupAlphaAmt;
}
public float getAreaAlphaAmt()
{
return areaAlphaAmt;
}
public void setAreaAlphaAmt(float areaAlphaAmt)
{
this.areaAlphaAmt=areaAlphaAmt;
}
public float getAbReturnAmt()
{
return abReturnAmt;
}
public void setAbReturnAmt(float abReturnAmt)
{
this.abReturnAmt=abReturnAmt;
}
public float getAbReturnPerc()
{
return abReturnPerc;
}
public void setAbReturnPerc(float abReturnPerc)
{
this.abReturnPerc=abReturnPerc;
}
public float getIntradayPerc()
{
return intradayPerc;
}
public void setIntradayPerc(float intradayPerc)
{
this.intradayPerc=intradayPerc;
}
public float getIntradayAmt()
{
return intradayAmt;
}
public void setIntradayAmt(float intradayAmt)
{
this.intradayAmt=intradayAmt;
}
public float getOptionalityAmt()
{
return optionalityAmt;
}
public void setOptionalityAmt(float optionalityAmt)
{
this.optionalityAmt=optionalityAmt;
}
public float getOptionalityPerc()
{
return optionalityPerc;
}
public void setOptionalityPerc(float optionalityPerc)
{
this.optionalityPerc=optionalityPerc;
}
public String getCurrency()
{
return currency;
}
public void setCurrency(String currency)
{
this.currency=currency;
}
public float getBaseClose()
{
return baseClose;
}
public void setBaseClose(float baseClose)
{
this.baseClose=baseClose;
}
public float getYBaseClose()
{
return yBaseClose;
}
public void setYBaseClose(float yBaseClose)
{
this.yBaseClose=yBaseClose;
}
public float getFxPerc()
{
return fxPerc;
}
public void setFxPerc(float fxPerc)
{
this.fxPerc=fxPerc;
}
public float getFxAmt()
{
return fxAmt;
}
public void setFxAmt(float fxAmt)
{
this.fxAmt=fxAmt;
}
public float getFxRate()
{
return fxRate;
}
public void setFxRate(float fxRate)
{
this.fxRate=fxRate;
}
public float getYFxRate()
{
return yFxRate;
}
public void setYFxRate(float yFxRate)
{
this.yFxRate=yFxRate;
}
public float getAltIndexReturnPerc()
{
return altIndexReturnPerc;
}
public void setAltIndexReturnPerc(float altIndexReturnPerc)
{
this.altIndexReturnPerc=altIndexReturnPerc;
}
public float getAltIndexReturnAmt()
{
return altIndexReturnAmt;
}
public void setAltIndexReturnAmt(float altIndexReturnAmt)
{
this.altIndexReturnAmt=altIndexReturnAmt;
}
public float getIndexBetaAdjPerc()
{
return indexBetaAdjPerc;
}
public void setIndexBetaAdjPerc(float indexBetaAdjPerc)
{
this.indexBetaAdjPerc=indexBetaAdjPerc;
}
public float getIndexBetaAdjAmt()
{
return indexBetaAdjAmt;
}
public void setIndexBetaAdjAmt(float indexBetaAdjAmt)
{
this.indexBetaAdjAmt=indexBetaAdjAmt;
}
public float getVwap()
{
return vwap;
}
public void setVwap(float vwap)
{
this.vwap=vwap;
}
public float getVwapPnl()
{
return vwapPnl;
}
public void setVwapPnl(float vwapPnl)
{
this.vwapPnl=vwapPnl;
}
public float getHedgeAlphaAmt()
{
return hedgeAlphaAmt;
}
public void setHedgeAlphaAmt(float hedgeAlphaAmt)
{
this.hedgeAlphaAmt=hedgeAlphaAmt;
}
public String getExposureView()
{
return exposureView;
}
public void setExposureView(String exposureView)
{
this.exposureView=exposureView;
}
public String getMarketView()
{
return marketView;
}
public void setMarketView(String marketView)
{
this.marketView=marketView;
}
public String getCallPut()
{
return callPut;
}
public void setCallPut(String callPut)
{
this.callPut=callPut;
}
public String get[month]()
{
return [month];
}
public void set[month](String [month])
{
this.[month]=[month];
}
public boolean getPrivate()
{
return private;
}
public void setPrivate(boolean private)
{
this.private=private;
}
public boolean getIpo()
{
return ipo;
}
public void setIpo(boolean ipo)
{
this.ipo=ipo;
}
public float getRatio()
{
return ratio;
}
public void setRatio(float ratio)
{
this.ratio=ratio;
}
public String getSource()
{
return source;
}
public void setSource(String source)
{
this.source=source;
}
public Timestamp getGoAround()
{
return goAround;
}
public void setGoAround(Timestamp goAround)
{
this.goAround=goAround;
}
public float getAdh()
{
return adh;
}
public void setAdh(float adh)
{
this.adh=adh;
}
public float getAac()
{
return aac;
}
public void setAac(float aac)
{
this.aac=aac;
}
public float getAzap()
{
return azap;
}
public void setAzap(float azap)
{
this.azap=azap;
}
public boolean getExported()
{
return exported;
}
public void setExported(boolean exported)
{
this.exported=exported;
}
public float getHedgeAlphaPerc()
{
return hedgeAlphaPerc;
}
public void setHedgeAlphaPerc(float hedgeAlphaPerc)
{
this.hedgeAlphaPerc=hedgeAlphaPerc;
}
public float getAlphaGoAround()
{
return alphaGoAround;
}
public void setAlphaGoAround(float alphaGoAround)
{
this.alphaGoAround=alphaGoAround;
}
public float getAlphaReal()
{
return alphaReal;
}
public void setAlphaReal(float alphaReal)
{
this.alphaReal=alphaReal;
}
public float getAlphaUnreal()
{
return alphaUnreal;
}
public void setAlphaUnreal(float alphaUnreal)
{
this.alphaUnreal=alphaUnreal;
}
public float getPnlReal()
{
return pnlReal;
}
public void setPnlReal(float pnlReal)
{
this.pnlReal=pnlReal;
}
public float getPnlUnreal()
{
return pnlUnreal;
}
public void setPnlUnreal(float pnlUnreal)
{
this.pnlUnreal=pnlUnreal;
}
public float getCashFlow()
{
return cashFlow;
}
public void setCashFlow(float cashFlow)
{
this.cashFlow=cashFlow;
}
public float getBetaCashFlow()
{
return betaCashFlow;
}
public void setBetaCashFlow(float betaCashFlow)
{
this.betaCashFlow=betaCashFlow;
}
public Timestamp getLastTradeDate()
{
return lastTradeDate;
}
public void setLastTradeDate(Timestamp lastTradeDate)
{
this.lastTradeDate=lastTradeDate;
}
public float getLastTradeQty()
{
return lastTradeQty;
}
public void setLastTradeQty(float lastTradeQty)
{
this.lastTradeQty=lastTradeQty;
}
public float getEnterpriseValue()
{
return enterpriseValue;
}
public void setEnterpriseValue(float enterpriseValue)
{
this.enterpriseValue=enterpriseValue;
}
public String getAssociate()
{
return associate;
}
public void setAssociate(String associate)
{
this.associate=associate;
}
};

114
proto/Debug/HistoricRS.java Normal file
View File

@@ -0,0 +1,114 @@
package zbi.risk.server.vhi.mapped
public void processResult()
{
Historic foo;
ResultSet rs;
// fill in the blanks
foo.setTradeDate(rs.getTimestamp("trade_date"));
foo.setTradeDateTxt(rs.getString("trade_date_txt"));
foo.setPortfolio(rs.getString("portfolio"));
foo.setSubPortfolio(rs.getString("sub_portfolio"));
foo.setTicker(rs.getString("ticker"));
foo.setTickerDesc(rs.getString("ticker_desc"));
foo.setUticker(rs.getString("uticker"));
foo.setInstrument(rs.getString("instrument"));
foo.setMktCap(rs.getFloat("mkt_cap"));
foo.setWgtAve(rs.getFloat("wgt_ave"));
foo.setVolume(rs.getFloat("volume"));
foo.setContractSize(rs.getFloat("contract_size"));
foo.setHedgeIndex(rs.getString("hedge_index"));
foo.setHedgeSector(rs.getString("hedge_sector"));
foo.setArea(rs.getString("area"));
foo.setAreaSector(rs.getString("area_sector"));
foo.set[close](rs.getFloat("[close]"));
foo.setYClose(rs.getFloat("y_close"));
foo.setUtickerClose(rs.getFloat("uticker_close"));
foo.setYUtickerClose(rs.getFloat("y_uticker_close"));
foo.setDelta(rs.getFloat("delta"));
foo.setYDelta(rs.getFloat("y_delta"));
foo.setDaysExpire(rs.getInt("days_expire"));
foo.setStrikePrice(rs.getFloat("strike_price"));
foo.setHedgeBeta(rs.getFloat("hedge_beta"));
foo.setAreaBeta(rs.getFloat("area_beta"));
foo.setSectorBeta(rs.getFloat("sector_beta"));
foo.setGroupBeta(rs.getFloat("group_beta"));
foo.setQty(rs.getFloat("qty"));
foo.setYQty(rs.getFloat("y_qty"));
foo.setQtyChange(rs.getFloat("qty_change"));
foo.setHedgeClose(rs.getFloat("hedge_close"));
foo.setHedgePerc(rs.getFloat("hedge_perc"));
foo.setAreaClose(rs.getFloat("area_close"));
foo.setAreaPerc(rs.getFloat("area_perc"));
foo.setSectorClose(rs.getFloat("sector_close"));
foo.setSectorPerc(rs.getFloat("sector_perc"));
foo.setMktValue(rs.getFloat("mkt_value"));
foo.setYMktValue(rs.getFloat("y_mkt_value"));
foo.setPnl(rs.getFloat("pnl"));
foo.setExposure(rs.getFloat("exposure"));
foo.setYExposure(rs.getFloat("y_exposure"));
foo.setHbExposure(rs.getFloat("hb_exposure"));
foo.setYHbExposure(rs.getFloat("y_hb_exposure"));
foo.setAbExposure(rs.getFloat("ab_exposure"));
foo.setYAbExposure(rs.getFloat("y_ab_exposure"));
foo.setSbExposure(rs.getFloat("sb_exposure"));
foo.setYSbExposure(rs.getFloat("y_sb_exposure"));
foo.setAreaPnlAmt(rs.getFloat("area_pnl_amt"));
foo.setSectorPnlAmt(rs.getFloat("sector_pnl_amt"));
foo.setPnlPerc(rs.getFloat("pnl_perc"));
foo.setPriceChange(rs.getFloat("price_change"));
foo.setPriceChangePerc(rs.getFloat("price_change_perc"));
foo.setPriceChangeAmt(rs.getFloat("price_change_amt"));
foo.setSectorAlphaPerc(rs.getFloat("sector_alpha_perc"));
foo.setGroupAlphaPerc(rs.getFloat("group_alpha_perc"));
foo.setAreaAlphaPerc(rs.getFloat("area_alpha_perc"));
foo.setSectorAlphaAmt(rs.getFloat("sector_alpha_amt"));
foo.setGroupAlphaAmt(rs.getFloat("group_alpha_amt"));
foo.setAreaAlphaAmt(rs.getFloat("area_alpha_amt"));
foo.setAbReturnAmt(rs.getFloat("ab_return_amt"));
foo.setAbReturnPerc(rs.getFloat("ab_return_perc"));
foo.setIntradayPerc(rs.getFloat("intraday_perc"));
foo.setIntradayAmt(rs.getFloat("intraday_amt"));
foo.setOptionalityAmt(rs.getFloat("optionality_amt"));
foo.setOptionalityPerc(rs.getFloat("optionality_perc"));
foo.setCurrency(rs.getString("currency"));
foo.setBaseClose(rs.getFloat("base_close"));
foo.setYBaseClose(rs.getFloat("y_base_close"));
foo.setFxPerc(rs.getFloat("fx_perc"));
foo.setFxAmt(rs.getFloat("fx_amt"));
foo.setFxRate(rs.getFloat("fx_rate"));
foo.setYFxRate(rs.getFloat("y_fx_rate"));
foo.setAltIndexReturnPerc(rs.getFloat("alt_index_return_perc"));
foo.setAltIndexReturnAmt(rs.getFloat("alt_index_return_amt"));
foo.setIndexBetaAdjPerc(rs.getFloat("index_beta_adj_perc"));
foo.setIndexBetaAdjAmt(rs.getFloat("index_beta_adj_amt"));
foo.setVwap(rs.getFloat("vwap"));
foo.setVwapPnl(rs.getFloat("vwap_pnl"));
foo.setHedgeAlphaAmt(rs.getFloat("hedge_alpha_amt"));
foo.setExposureView(rs.getString("exposure_view"));
foo.setMarketView(rs.getString("market_view"));
foo.setCallPut(rs.getString("call_put"));
foo.set[month](rs.getString("[month]"));
foo.setPrivate(rs.getBoolean("private"));
foo.setIpo(rs.getBoolean("ipo"));
foo.setRatio(rs.getFloat("ratio"));
foo.setSource(rs.getString("source"));
foo.setGoAround(rs.getTimestamp("go_around"));
foo.setAdh(rs.getFloat("adh"));
foo.setAac(rs.getFloat("aac"));
foo.setAzap(rs.getFloat("azap"));
foo.setExported(rs.getBoolean("exported"));
foo.setHedgeAlphaPerc(rs.getFloat("hedge_alpha_perc"));
foo.setAlphaGoAround(rs.getFloat("alpha_go_around"));
foo.setAlphaReal(rs.getFloat("alpha_real"));
foo.setAlphaUnreal(rs.getFloat("alpha_unreal"));
foo.setPnlReal(rs.getFloat("pnl_real"));
foo.setPnlUnreal(rs.getFloat("pnl_unreal"));
foo.setCashFlow(rs.getFloat("cash_flow"));
foo.setBetaCashFlow(rs.getFloat("beta_cash_flow"));
foo.setLastTradeDate(rs.getTimestamp("last_trade_date"));
foo.setLastTradeQty(rs.getFloat("last_trade_qty"));
foo.setEnterpriseValue(rs.getFloat("enterprise_value"));
foo.setAssociate(rs.getString("associate"));
}

BIN
proto/Debug/HookDLL.dll Normal file

Binary file not shown.

BIN
proto/Debug/HookDLL.exp Normal file

Binary file not shown.

BIN
proto/Debug/HookDLL.lib Normal file

Binary file not shown.

BIN
proto/Debug/HookDLL.pdb Normal file

Binary file not shown.

114
proto/Debug/Mail.java Normal file
View File

@@ -0,0 +1,114 @@
package ZBI.Risk.Server.Value.Mapped
public class Mail
{
private string returnPath;
private string subject;
private string receivedFrom;
private string messageID;
private string mailTo;
private string mailFrom;
private string server;
private int messageLength;
private DateTime date;
private string contentType;
private string contentTransferEncoding;
private int mailID;
public string getReturnPath()
{
return returnPath;
}
public void setReturnPath(string returnPath)
{
this.returnPath=returnPath;
}
public string getSubject()
{
return subject;
}
public void setSubject(string subject)
{
this.subject=subject;
}
public string getReceivedFrom()
{
return receivedFrom;
}
public void setReceivedFrom(string receivedFrom)
{
this.receivedFrom=receivedFrom;
}
public string getMessageID()
{
return messageID;
}
public void setMessageID(string messageID)
{
this.messageID=messageID;
}
public string getMailTo()
{
return mailTo;
}
public void setMailTo(string mailTo)
{
this.mailTo=mailTo;
}
public string getMailFrom()
{
return mailFrom;
}
public void setMailFrom(string mailFrom)
{
this.mailFrom=mailFrom;
}
public string getServer()
{
return server;
}
public void setServer(string server)
{
this.server=server;
}
public int getMessageLength()
{
return messageLength;
}
public void setMessageLength(int messageLength)
{
this.messageLength=messageLength;
}
public DateTime getDate()
{
return date;
}
public void setDate(DateTime date)
{
this.date=date;
}
public string getContentType()
{
return contentType;
}
public void setContentType(string contentType)
{
this.contentType=contentType;
}
public string getContentTransferEncoding()
{
return contentTransferEncoding;
}
public void setContentTransferEncoding(string contentTransferEncoding)
{
this.contentTransferEncoding=contentTransferEncoding;
}
public int getMailID()
{
return mailID;
}
public void setMailID(int mailID)
{
this.mailID=mailID;
}
};

21
proto/Debug/MailRS.java Normal file
View File

@@ -0,0 +1,21 @@
package ZBI.Risk.Server.Value.Mapped
public void processResult()
{
Mail mail;
ResultSet rs;
// fill in the blanks
mail.setReturnPath(rs.getString("returnPath"));
mail.setSubject(rs.getString("subject"));
mail.setReceivedFrom(rs.getString("receivedFrom"));
mail.setMessageID(rs.getString("messageID"));
mail.setMailTo(rs.getString("mailTo"));
mail.setMailFrom(rs.getString("mailFrom"));
mail.setServer(rs.getString("server"));
mail.setMessageLength(rs.getInt("messageLength"));
mail.setDate(rs.getDateTime("date"));
mail.setContentType(rs.getString("contentType"));
mail.setContentTransferEncoding(rs.getString("contentTransferEncoding"));
mail.setMailID(rs.getInt("mailID"));
}

BIN
proto/Debug/cbtdll.dll Normal file

Binary file not shown.

BIN
proto/Debug/cbtdll.exp Normal file

Binary file not shown.

BIN
proto/Debug/cbtdll.lib Normal file

Binary file not shown.

1566
proto/Debug/cbtdll.map Normal file

File diff suppressed because it is too large Load Diff

BIN
proto/Debug/dlltest.dll Normal file

Binary file not shown.

BIN
proto/Debug/dlltest.exp Normal file

Binary file not shown.

BIN
proto/Debug/dlltest.lib Normal file

Binary file not shown.

BIN
proto/Debug/dlltest.pdb Normal file

Binary file not shown.

0
proto/Debug/log.txt Normal file
View File

12
proto/Debug/mail.txt Normal file
View File

@@ -0,0 +1,12 @@
1 returnPath varchar (132) NULL ,
1 subject varchar (132) NULL ,
1 receivedFrom varchar (132) NULL ,
1 messageID varchar (80) NOT NULL ,
1 mailTo varchar (132) NULL ,
1 mailFrom varchar (132) NULL ,
1 server varchar (40) NULL ,
1 messageLength int NULL ,
1 date datetime NULL ,
1 contentType varchar (64) NULL ,
1 contentTransferEncoding varchar (64) NULL ,
1 mailID int IDENTITY (1, 1) NOT NULL ,

BIN
proto/Debug/makeres.exe Normal file

Binary file not shown.

View File

@@ -0,0 +1 @@
mapclass ZBI.Risk.Server.Value.Mapped Mail mail mapping.txt mail.txt

9
proto/Debug/mapping.txt Normal file
View File

@@ -0,0 +1,9 @@
nvarchar=string
varchar=string
decimal=decimal
float=float
smalldatetime=Timestamp
int=int
bit=boolean
datetime=DateTime

BIN
proto/Debug/memstat.exe Normal file

Binary file not shown.

BIN
proto/Debug/proto.exe Normal file

Binary file not shown.

BIN
proto/Debug/proto.exp Normal file

Binary file not shown.

BIN
proto/Debug/proto.lib Normal file

Binary file not shown.

769
proto/Debug/smk Normal file
View File

@@ -0,0 +1,769 @@
********************** AutoRun Registry Settings
Key=HKLM
SubKey=Software\Microsoft\Windows NT\CurrentVersion\Winlogon
RunItem=C:\WINNT\system32\userinit.exe,
Item=Userinit
SubKeyItem=
WinIniRun=
Key=HKLM
SubKey=Software\Microsoft\Windows NT\CurrentVersion\Winlogon
RunItem=Explorer.exe
Item=Shell
SubKeyItem=
WinIniRun=
Key=HKLM
SubKey=Software\Microsoft\Windows\CurrentVersion\Run
RunItem=mobsync.exe /logon
Item=
SubKeyItem=Synchronization Manager
WinIniRun=
Key=HKLM
SubKey=Software\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
RunItem={35CEC8A3-2BE6-11D2-8773-92E220524153}
Item=
SubKeyItem=SysTray
WinIniRun=
Key=HKLM
SubKey=Software\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad
RunItem={7007ACCF-3202-11D1-AAD2-00805FC1270E}
Item=
SubKeyItem=Network.ConnectionTray
WinIniRun=
********************** Current Process/Module List
Pid:160(0x000000a0) smss.exe \SystemRoot\System32\smss.exe
ntdll.dll C:\WINNT\system32\ntdll.dll
sfcfiles.dll C:\WINNT\System32\sfcfiles.dll
Pid:208(0x000000d0) winlogon.exe \??\C:\WINNT\system32\winlogon.exe
ntdll.dll C:\WINNT\system32\ntdll.dll
MSVCRT.DLL C:\WINNT\system32\MSVCRT.DLL
KERNEL32.dll C:\WINNT\system32\KERNEL32.dll
ADVAPI32.DLL C:\WINNT\system32\ADVAPI32.DLL
RPCRT4.DLL C:\WINNT\system32\RPCRT4.DLL
GDI32.DLL C:\WINNT\system32\GDI32.DLL
USER32.DLL C:\WINNT\system32\USER32.DLL
USERENV.DLL C:\WINNT\system32\USERENV.DLL
NDDEAPI.DLL C:\WINNT\system32\NDDEAPI.DLL
SFC.DLL C:\WINNT\system32\SFC.DLL
sfcfiles.dll C:\WINNT\system32\sfcfiles.dll
SECUR32.DLL C:\WINNT\system32\SECUR32.DLL
PROFMAP.DLL C:\WINNT\system32\PROFMAP.DLL
NETAPI32.dll C:\WINNT\system32\NETAPI32.dll
NETRAP.DLL C:\WINNT\system32\NETRAP.DLL
SAMLIB.DLL C:\WINNT\system32\SAMLIB.DLL
WS2_32.DLL C:\WINNT\system32\WS2_32.DLL
WS2HELP.DLL C:\WINNT\system32\WS2HELP.DLL
WLDAP32.DLL C:\WINNT\system32\WLDAP32.DLL
DNSAPI.DLL C:\WINNT\system32\DNSAPI.DLL
WSOCK32.DLL C:\WINNT\system32\WSOCK32.DLL
msgina.dll C:\WINNT\system32\msgina.dll
SHELL32.DLL C:\WINNT\system32\SHELL32.DLL
SHLWAPI.DLL C:\WINNT\system32\SHLWAPI.DLL
COMCTL32.DLL C:\WINNT\system32\COMCTL32.DLL
WINSTA.DLL C:\WINNT\system32\WINSTA.DLL
WINMM.dll C:\WINNT\system32\WINMM.dll
setupapi.dll C:\WINNT\system32\setupapi.dll
cscdll.dll C:\WINNT\system32\cscdll.dll
WlNotify.dll C:\WINNT\system32\WlNotify.dll
CERTCLI.DLL C:\WINNT\system32\CERTCLI.DLL
ATL.DLL C:\WINNT\system32\ATL.DLL
CRYPT32.DLL C:\WINNT\system32\CRYPT32.DLL
MSASN1.DLL C:\WINNT\system32\MSASN1.DLL
WINSCARD.DLL C:\WINNT\system32\WINSCARD.DLL
WINSPOOL.DRV C:\WINNT\system32\WINSPOOL.DRV
MPR.DLL C:\WINNT\system32\MPR.DLL
wdmaud.drv C:\WINNT\system32\wdmaud.drv
wintrust.dll C:\WINNT\system32\wintrust.dll
IMAGEHLP.dll C:\WINNT\system32\IMAGEHLP.dll
ole32.dll C:\WINNT\system32\ole32.dll
mscat32.dll C:\WINNT\system32\mscat32.dll
rsaenh.dll C:\WINNT\system32\rsaenh.dll
VERSION.dll C:\WINNT\system32\VERSION.dll
LZ32.DLL C:\WINNT\system32\LZ32.DLL
cscui.dll C:\WINNT\system32\cscui.dll
wzcdlg.dll C:\WINNT\system32\wzcdlg.dll
OLEAUT32.dll C:\WINNT\system32\OLEAUT32.dll
WZCSAPI.DLL C:\WINNT\system32\WZCSAPI.DLL
CLBCATQ.DLL C:\WINNT\system32\CLBCATQ.DLL
msacm32.drv C:\WINNT\system32\msacm32.drv
MSACM32.dll C:\WINNT\system32\MSACM32.dll
msv1_0.dll C:\WINNT\system32\msv1_0.dll
igfxsrvc.dll C:\WINNT\system32\igfxsrvc.dll
hccutils.DLL C:\WINNT\system32\hccutils.DLL
Pid:236(0x000000ec) services.exe C:\WINNT\system32\services.exe
ntdll.dll C:\WINNT\system32\ntdll.dll
RPCRT4.DLL C:\WINNT\system32\RPCRT4.DLL
KERNEL32.dll C:\WINNT\system32\KERNEL32.dll
ADVAPI32.dll C:\WINNT\system32\ADVAPI32.dll
NETAPI32.DLL C:\WINNT\system32\NETAPI32.DLL
MSVCRT.DLL C:\WINNT\system32\MSVCRT.DLL
SECUR32.DLL C:\WINNT\system32\SECUR32.DLL
NETRAP.DLL C:\WINNT\system32\NETRAP.DLL
SAMLIB.DLL C:\WINNT\system32\SAMLIB.DLL
WS2_32.DLL C:\WINNT\system32\WS2_32.DLL
WS2HELP.DLL C:\WINNT\system32\WS2HELP.DLL
WLDAP32.DLL C:\WINNT\system32\WLDAP32.DLL
DNSAPI.DLL C:\WINNT\system32\DNSAPI.DLL
WSOCK32.DLL C:\WINNT\system32\WSOCK32.DLL
USER32.DLL C:\WINNT\system32\USER32.DLL
GDI32.DLL C:\WINNT\system32\GDI32.DLL
UMPNPMGR.DLL C:\WINNT\system32\UMPNPMGR.DLL
USERENV.DLL C:\WINNT\system32\USERENV.DLL
SCESRV.DLL C:\WINNT\system32\SCESRV.DLL
NTDSAPI.DLL C:\WINNT\system32\NTDSAPI.DLL
eventlog.dll C:\WINNT\system32\eventlog.dll
dhcpcsvc.dll C:\WINNT\system32\dhcpcsvc.dll
ICMP.DLL C:\WINNT\system32\ICMP.DLL
IPHLPAPI.DLL C:\WINNT\system32\IPHLPAPI.DLL
MPRAPI.DLL C:\WINNT\system32\MPRAPI.DLL
OLE32.DLL C:\WINNT\system32\OLE32.DLL
OLEAUT32.DLL C:\WINNT\system32\OLEAUT32.DLL
ACTIVEDS.DLL C:\WINNT\system32\ACTIVEDS.DLL
ADSLDPC.DLL C:\WINNT\system32\ADSLDPC.DLL
RTUTILS.DLL C:\WINNT\system32\RTUTILS.DLL
SETUPAPI.DLL C:\WINNT\system32\SETUPAPI.DLL
RASAPI32.DLL C:\WINNT\system32\RASAPI32.DLL
RASMAN.DLL C:\WINNT\system32\RASMAN.DLL
TAPI32.DLL C:\WINNT\system32\TAPI32.DLL
COMCTL32.DLL C:\WINNT\system32\COMCTL32.DLL
SHLWAPI.DLL C:\WINNT\system32\SHLWAPI.DLL
dnsrslvr.dll C:\WINNT\system32\dnsrslvr.dll
lmhsvc.dll C:\WINNT\system32\lmhsvc.dll
WINSTA.DLL C:\WINNT\system32\WINSTA.DLL
dmserver.dll C:\WINNT\system32\dmserver.dll
CFGMGR32.DLL C:\WINNT\system32\CFGMGR32.DLL
Srvsvc.dll C:\WINNT\system32\Srvsvc.dll
WINSPOOL.DRV C:\WINNT\system32\WINSPOOL.DRV
MPR.DLL C:\WINNT\system32\MPR.DLL
wkssvc.dll C:\WINNT\system32\wkssvc.dll
CRYPTDLL.DLL C:\WINNT\system32\CRYPTDLL.DLL
cryptsvc.dll C:\WINNT\system32\cryptsvc.dll
psbase.dll C:\WINNT\system32\psbase.dll
rsaenh.dll C:\WINNT\system32\rsaenh.dll
CRYPT32.dll C:\WINNT\system32\CRYPT32.dll
MSASN1.DLL C:\WINNT\system32\MSASN1.DLL
seclogon.dll C:\WINNT\system32\seclogon.dll
browser.dll C:\WINNT\system32\browser.dll
ESENT.dll C:\WINNT\system32\ESENT.dll
wmicore.dll C:\WINNT\system32\wmicore.dll
msafd.dll C:\WINNT\system32\msafd.dll
wshtcpip.dll C:\WINNT\System32\wshtcpip.dll
Pid:248(0x000000f8) lsass.exe C:\WINNT\system32\lsass.exe
ntdll.dll C:\WINNT\system32\ntdll.dll
KERNEL32.dll C:\WINNT\system32\KERNEL32.dll
LSASRV.dll C:\WINNT\system32\LSASRV.dll
MSVCRT.DLL C:\WINNT\system32\MSVCRT.DLL
CRYPTDLL.DLL C:\WINNT\system32\CRYPTDLL.DLL
ADVAPI32.DLL C:\WINNT\system32\ADVAPI32.DLL
RPCRT4.DLL C:\WINNT\system32\RPCRT4.DLL
SECUR32.DLL C:\WINNT\system32\SECUR32.DLL
USER32.DLL C:\WINNT\system32\USER32.DLL
GDI32.DLL C:\WINNT\system32\GDI32.DLL
SAMSRV.DLL C:\WINNT\system32\SAMSRV.DLL
DNSAPI.DLL C:\WINNT\system32\DNSAPI.DLL
WSOCK32.DLL C:\WINNT\system32\WSOCK32.DLL
WS2_32.DLL C:\WINNT\system32\WS2_32.DLL
WS2HELP.DLL C:\WINNT\system32\WS2HELP.DLL
MSASN1.DLL C:\WINNT\system32\MSASN1.DLL
NETAPI32.DLL C:\WINNT\system32\NETAPI32.DLL
NETRAP.DLL C:\WINNT\system32\NETRAP.DLL
SAMLIB.DLL C:\WINNT\system32\SAMLIB.DLL
WLDAP32.DLL C:\WINNT\system32\WLDAP32.DLL
msprivs.dll C:\WINNT\system32\msprivs.dll
kerberos.dll C:\WINNT\system32\kerberos.dll
msv1_0.dll C:\WINNT\system32\msv1_0.dll
CRYPT32.DLL C:\WINNT\system32\CRYPT32.DLL
netlogon.dll C:\WINNT\system32\netlogon.dll
NTDSAPI.DLL C:\WINNT\system32\NTDSAPI.DLL
schannel.dll C:\WINNT\system32\schannel.dll
USERENV.DLL C:\WINNT\system32\USERENV.DLL
rsabase.dll C:\WINNT\system32\rsabase.dll
ole32.dll C:\WINNT\system32\ole32.dll
mpr.dll C:\WINNT\system32\mpr.dll
setupapi.dll C:\WINNT\system32\setupapi.dll
COMCTL32.dll C:\WINNT\system32\COMCTL32.dll
scecli.dll C:\WINNT\system32\scecli.dll
polagent.dll C:\WINNT\system32\polagent.dll
MFC42U.DLL C:\WINNT\system32\MFC42U.DLL
OAKLEY.DLL C:\WINNT\system32\OAKLEY.DLL
IPHLPAPI.DLL C:\WINNT\system32\IPHLPAPI.DLL
ICMP.DLL C:\WINNT\system32\ICMP.DLL
MPRAPI.DLL C:\WINNT\system32\MPRAPI.DLL
OLEAUT32.DLL C:\WINNT\system32\OLEAUT32.DLL
ACTIVEDS.DLL C:\WINNT\system32\ACTIVEDS.DLL
ADSLDPC.DLL C:\WINNT\system32\ADSLDPC.DLL
RTUTILS.DLL C:\WINNT\system32\RTUTILS.DLL
RASAPI32.DLL C:\WINNT\system32\RASAPI32.DLL
RASMAN.DLL C:\WINNT\system32\RASMAN.DLL
TAPI32.DLL C:\WINNT\system32\TAPI32.DLL
SHLWAPI.DLL C:\WINNT\system32\SHLWAPI.DLL
DHCPCSVC.DLL C:\WINNT\system32\DHCPCSVC.DLL
msafd.dll C:\WINNT\system32\msafd.dll
wshtcpip.dll C:\WINNT\System32\wshtcpip.dll
rsaenh.dll C:\WINNT\system32\rsaenh.dll
dssenh.dll C:\WINNT\system32\dssenh.dll
Pid:424(0x000001a8) svchost.exe C:\WINNT\system32\svchost.exe
ntdll.dll C:\WINNT\system32\ntdll.dll
ADVAPI32.DLL C:\WINNT\system32\ADVAPI32.DLL
KERNEL32.DLL C:\WINNT\system32\KERNEL32.DLL
RPCRT4.DLL C:\WINNT\system32\RPCRT4.DLL
OLE32.DLL C:\WINNT\system32\OLE32.DLL
GDI32.dll C:\WINNT\system32\GDI32.dll
USER32.DLL C:\WINNT\system32\USER32.DLL
rpcss.dll c:\winnt\system32\rpcss.dll
MSVCRT.dll C:\WINNT\system32\MSVCRT.dll
USERENV.dll c:\winnt\system32\USERENV.dll
WS2_32.dll c:\winnt\system32\WS2_32.dll
WS2HELP.DLL c:\winnt\system32\WS2HELP.DLL
Secur32.dll c:\winnt\system32\Secur32.dll
WINSTA.dll c:\winnt\system32\WINSTA.dll
mswsock.dll C:\WINNT\system32\mswsock.dll
DNSAPI.DLL C:\WINNT\system32\DNSAPI.DLL
WSOCK32.DLL C:\WINNT\system32\WSOCK32.DLL
msafd.dll C:\WINNT\system32\msafd.dll
wshtcpip.dll C:\WINNT\System32\wshtcpip.dll
rnr20.dll C:\WINNT\System32\rnr20.dll
iphlpapi.dll C:\WINNT\system32\iphlpapi.dll
ICMP.DLL C:\WINNT\system32\ICMP.DLL
MPRAPI.DLL C:\WINNT\system32\MPRAPI.DLL
SAMLIB.DLL C:\WINNT\system32\SAMLIB.DLL
NETAPI32.DLL C:\WINNT\system32\NETAPI32.DLL
NETRAP.DLL C:\WINNT\system32\NETRAP.DLL
WLDAP32.DLL C:\WINNT\system32\WLDAP32.DLL
OLEAUT32.DLL C:\WINNT\system32\OLEAUT32.DLL
ACTIVEDS.DLL C:\WINNT\system32\ACTIVEDS.DLL
ADSLDPC.DLL C:\WINNT\system32\ADSLDPC.DLL
RTUTILS.DLL C:\WINNT\system32\RTUTILS.DLL
SETUPAPI.DLL C:\WINNT\system32\SETUPAPI.DLL
RASAPI32.DLL C:\WINNT\system32\RASAPI32.DLL
RASMAN.DLL C:\WINNT\system32\RASMAN.DLL
TAPI32.DLL C:\WINNT\system32\TAPI32.DLL
COMCTL32.DLL C:\WINNT\system32\COMCTL32.DLL
SHLWAPI.DLL C:\WINNT\system32\SHLWAPI.DLL
DHCPCSVC.DLL C:\WINNT\system32\DHCPCSVC.DLL
winrnr.dll C:\WINNT\System32\winrnr.dll
rasadhlp.dll C:\WINNT\system32\rasadhlp.dll
CLBCATQ.DLL C:\WINNT\system32\CLBCATQ.DLL
msv1_0.dll C:\WINNT\system32\msv1_0.dll
CRYPT32.DLL C:\WINNT\system32\CRYPT32.DLL
MSASN1.DLL C:\WINNT\system32\MSASN1.DLL
Pid:452(0x000001c4) spoolsv.exe C:\WINNT\system32\spoolsv.exe
ntdll.dll C:\WINNT\system32\ntdll.dll
MSVCRT.DLL C:\WINNT\system32\MSVCRT.DLL
KERNEL32.dll C:\WINNT\system32\KERNEL32.dll
ADVAPI32.DLL C:\WINNT\system32\ADVAPI32.DLL
RPCRT4.DLL C:\WINNT\system32\RPCRT4.DLL
GDI32.dll C:\WINNT\system32\GDI32.dll
USER32.DLL C:\WINNT\system32\USER32.DLL
SPOOLSS.DLL C:\WINNT\system32\SPOOLSS.DLL
WS2_32.DLL C:\WINNT\system32\WS2_32.DLL
WS2HELP.DLL C:\WINNT\system32\WS2HELP.DLL
NETAPI32.DLL C:\WINNT\system32\NETAPI32.DLL
SECUR32.DLL C:\WINNT\system32\SECUR32.DLL
NETRAP.DLL C:\WINNT\system32\NETRAP.DLL
SAMLIB.DLL C:\WINNT\system32\SAMLIB.DLL
WLDAP32.DLL C:\WINNT\system32\WLDAP32.DLL
DNSAPI.DLL C:\WINNT\system32\DNSAPI.DLL
WSOCK32.DLL C:\WINNT\system32\WSOCK32.DLL
IPHLPAPI.DLL C:\WINNT\system32\IPHLPAPI.DLL
ICMP.DLL C:\WINNT\system32\ICMP.DLL
MPRAPI.DLL C:\WINNT\system32\MPRAPI.DLL
OLE32.DLL C:\WINNT\system32\OLE32.DLL
OLEAUT32.DLL C:\WINNT\system32\OLEAUT32.DLL
ACTIVEDS.DLL C:\WINNT\system32\ACTIVEDS.DLL
ADSLDPC.DLL C:\WINNT\system32\ADSLDPC.DLL
RTUTILS.DLL C:\WINNT\system32\RTUTILS.DLL
SETUPAPI.DLL C:\WINNT\system32\SETUPAPI.DLL
USERENV.DLL C:\WINNT\system32\USERENV.DLL
RASAPI32.DLL C:\WINNT\system32\RASAPI32.DLL
RASMAN.DLL C:\WINNT\system32\RASMAN.DLL
TAPI32.DLL C:\WINNT\system32\TAPI32.DLL
COMCTL32.DLL C:\WINNT\system32\COMCTL32.DLL
SHLWAPI.DLL C:\WINNT\system32\SHLWAPI.DLL
DHCPCSVC.DLL C:\WINNT\system32\DHCPCSVC.DLL
rasadhlp.dll C:\WINNT\system32\rasadhlp.dll
localspl.dll C:\WINNT\system32\localspl.dll
VERSION.DLL C:\WINNT\system32\VERSION.DLL
LZ32.DLL C:\WINNT\system32\LZ32.DLL
SFC.DLL C:\WINNT\system32\SFC.DLL
sfcfiles.dll C:\WINNT\system32\sfcfiles.dll
winspool.drv C:\WINNT\system32\winspool.drv
MPR.DLL C:\WINNT\system32\MPR.DLL
cnbjmon.dll C:\WINNT\system32\cnbjmon.dll
msafd.dll C:\WINNT\system32\msafd.dll
pjlmon.dll C:\WINNT\system32\pjlmon.dll
tcpmon.dll C:\WINNT\system32\tcpmon.dll
usbmon.dll C:\WINNT\system32\usbmon.dll
msfaxmon.dll C:\WINNT\system32\msfaxmon.dll
rnr20.dll C:\WINNT\System32\rnr20.dll
winrnr.dll C:\WINNT\System32\winrnr.dll
wshtcpip.dll C:\WINNT\System32\wshtcpip.dll
win32spl.dll C:\WINNT\system32\win32spl.dll
CLBCATQ.DLL C:\WINNT\system32\CLBCATQ.DLL
inetpp.dll C:\WINNT\system32\inetpp.dll
Pid:484(0x000001e4) svchost.exe C:\WINNT\System32\svchost.exe
ntdll.dll C:\WINNT\system32\ntdll.dll
ADVAPI32.DLL C:\WINNT\system32\ADVAPI32.DLL
KERNEL32.DLL C:\WINNT\system32\KERNEL32.DLL
RPCRT4.DLL C:\WINNT\system32\RPCRT4.DLL
OLE32.DLL C:\WINNT\system32\OLE32.DLL
GDI32.dll C:\WINNT\system32\GDI32.dll
USER32.DLL C:\WINNT\system32\USER32.DLL
es.dll c:\winnt\system32\es.dll
TXFAUX.DLL c:\winnt\system32\TXFAUX.DLL
MSVCRT.dll C:\WINNT\system32\MSVCRT.dll
OLEAUT32.DLL C:\WINNT\system32\OLEAUT32.DLL
CLBCATQ.DLL C:\WINNT\System32\CLBCATQ.DLL
ntmssvc.dll c:\winnt\system32\ntmssvc.dll
sens.dll c:\winnt\system32\sens.dll
COMCTL32.dll C:\WINNT\system32\COMCTL32.dll
WS2_32.dll C:\WINNT\System32\WS2_32.dll
WS2HELP.DLL C:\WINNT\System32\WS2HELP.DLL
tapisrv.dll c:\winnt\system32\tapisrv.dll
secur32.dll C:\WINNT\System32\secur32.dll
rasmans.dll c:\winnt\system32\rasmans.dll
rtutils.dll c:\winnt\system32\rtutils.dll
CRYPT32.dll C:\WINNT\system32\CRYPT32.dll
MSASN1.DLL C:\WINNT\system32\MSASN1.DLL
netcfgx.dll c:\winnt\system32\netcfgx.dll
DNSAPI.dll c:\winnt\system32\DNSAPI.dll
WSOCK32.DLL c:\winnt\system32\WSOCK32.DLL
RASAPI32.dll c:\winnt\system32\RASAPI32.dll
RASMAN.DLL c:\winnt\system32\RASMAN.DLL
TAPI32.DLL c:\winnt\system32\TAPI32.DLL
SHLWAPI.DLL C:\WINNT\system32\SHLWAPI.DLL
RASDLG.dll c:\winnt\system32\RASDLG.dll
MPRAPI.dll c:\winnt\system32\MPRAPI.dll
SAMLIB.DLL c:\winnt\system32\SAMLIB.DLL
NETAPI32.DLL c:\winnt\system32\NETAPI32.DLL
NETRAP.DLL c:\winnt\system32\NETRAP.DLL
WLDAP32.DLL C:\WINNT\system32\WLDAP32.DLL
ACTIVEDS.DLL c:\winnt\system32\ACTIVEDS.DLL
ADSLDPC.DLL c:\winnt\system32\ADSLDPC.DLL
SETUPAPI.DLL c:\winnt\system32\SETUPAPI.DLL
USERENV.DLL c:\winnt\system32\USERENV.DLL
rastapi.dll C:\WINNT\System32\rastapi.dll
unimdm.tsp C:\WINNT\System32\unimdm.tsp
uniplat.dll C:\WINNT\System32\uniplat.dll
CFGMGR32.dll C:\WINNT\System32\CFGMGR32.dll
NTMARTA.DLL C:\WINNT\System32\NTMARTA.DLL
WINSPOOL.DRV C:\WINNT\System32\WINSPOOL.DRV
MPR.DLL C:\WINNT\system32\MPR.DLL
NTDSAPI.dll C:\WINNT\System32\NTDSAPI.dll
unimdmat.dll C:\WINNT\System32\unimdmat.dll
VERSION.dll C:\WINNT\system32\VERSION.dll
LZ32.DLL C:\WINNT\system32\LZ32.DLL
modemui.dll C:\WINNT\System32\modemui.dll
SHELL32.dll C:\WINNT\system32\SHELL32.dll
kmddsp.tsp C:\WINNT\System32\kmddsp.tsp
ndptsp.tsp C:\WINNT\System32\ndptsp.tsp
ipconf.tsp C:\WINNT\System32\ipconf.tsp
h323.tsp C:\WINNT\System32\h323.tsp
iphlpapi.dll C:\WINNT\System32\iphlpapi.dll
ICMP.DLL C:\WINNT\System32\ICMP.DLL
DHCPCSVC.DLL C:\WINNT\System32\DHCPCSVC.DLL
rasppp.dll C:\WINNT\System32\rasppp.dll
ntlsapi.dll C:\WINNT\System32\ntlsapi.dll
raschap.dll C:\WINNT\System32\raschap.dll
ATL.DLL C:\WINNT\System32\ATL.DLL
rastls.dll C:\WINNT\System32\rastls.dll
CRYPTUI.dll C:\WINNT\System32\CRYPTUI.dll
WINTRUST.dll C:\WINNT\System32\WINTRUST.dll
IMAGEHLP.dll C:\WINNT\system32\IMAGEHLP.dll
SCHANNEL.dll C:\WINNT\System32\SCHANNEL.dll
WinSCard.dll C:\WINNT\System32\WinSCard.dll
NTMSDBA.dll C:\WINNT\System32\NTMSDBA.dll
netman.dll c:\winnt\system32\netman.dll
msi.dll C:\WINNT\System32\msi.dll
NETSHELL.dll C:\WINNT\system32\NETSHELL.dll
COMSVCS.DLL C:\WINNT\System32\COMSVCS.DLL
MSDTCPRX.dll C:\WINNT\System32\MSDTCPRX.dll
MTXCLU.DLL C:\WINNT\System32\MTXCLU.DLL
CLUSAPI.DLL C:\WINNT\System32\CLUSAPI.DLL
RESUTILS.DLL C:\WINNT\System32\RESUTILS.DLL
WMI.dll C:\WINNT\System32\WMI.dll
rsabase.dll C:\WINNT\System32\rsabase.dll
Pid:512(0x00000200) mdm.exe C:\Program Files\Common Files\Microsoft Shared\VS7Debug\mdm.exe
ntdll.dll C:\WINNT\system32\ntdll.dll
ole32.dll C:\WINNT\system32\ole32.dll
RPCRT4.dll C:\WINNT\system32\RPCRT4.dll
KERNEL32.dll C:\WINNT\system32\KERNEL32.dll
ADVAPI32.dll C:\WINNT\system32\ADVAPI32.dll
GDI32.dll C:\WINNT\system32\GDI32.dll
USER32.DLL C:\WINNT\system32\USER32.DLL
OLEAUT32.dll C:\WINNT\system32\OLEAUT32.dll
VERSION.dll C:\WINNT\system32\VERSION.dll
LZ32.DLL C:\WINNT\system32\LZ32.DLL
SHLWAPI.dll C:\WINNT\system32\SHLWAPI.dll
msvcrt.dll C:\WINNT\system32\msvcrt.dll
psapi.dll C:\WINNT\system32\psapi.dll
CLBCATQ.DLL C:\WINNT\system32\CLBCATQ.DLL
Pid:552(0x00000228) MSTask.exe C:\WINNT\system32\MSTask.exe
ntdll.dll C:\WINNT\system32\ntdll.dll
MSVCRT.dll C:\WINNT\system32\MSVCRT.dll
KERNEL32.dll C:\WINNT\system32\KERNEL32.dll
ADVAPI32.dll C:\WINNT\system32\ADVAPI32.dll
RPCRT4.DLL C:\WINNT\system32\RPCRT4.DLL
GDI32.dll C:\WINNT\system32\GDI32.dll
USER32.DLL C:\WINNT\system32\USER32.DLL
VERSION.dll C:\WINNT\system32\VERSION.dll
LZ32.DLL C:\WINNT\system32\LZ32.DLL
NETAPI32.dll C:\WINNT\system32\NETAPI32.dll
SECUR32.DLL C:\WINNT\system32\SECUR32.DLL
NETRAP.DLL C:\WINNT\system32\NETRAP.DLL
SAMLIB.DLL C:\WINNT\system32\SAMLIB.DLL
WS2_32.DLL C:\WINNT\system32\WS2_32.DLL
WS2HELP.DLL C:\WINNT\system32\WS2HELP.DLL
WLDAP32.DLL C:\WINNT\system32\WLDAP32.DLL
DNSAPI.DLL C:\WINNT\system32\DNSAPI.DLL
WSOCK32.DLL C:\WINNT\system32\WSOCK32.DLL
NTDSAPI.dll C:\WINNT\system32\NTDSAPI.dll
SHLWAPI.dll C:\WINNT\system32\SHLWAPI.dll
SHELL32.dll C:\WINNT\system32\SHELL32.dll
COMCTL32.DLL C:\WINNT\system32\COMCTL32.DLL
USERENV.dll C:\WINNT\system32\USERENV.dll
mswsock.dll C:\WINNT\system32\mswsock.dll
msafd.dll C:\WINNT\system32\msafd.dll
wshtcpip.dll C:\WINNT\System32\wshtcpip.dll
rnr20.dll C:\WINNT\System32\rnr20.dll
iphlpapi.dll C:\WINNT\system32\iphlpapi.dll
ICMP.DLL C:\WINNT\system32\ICMP.DLL
MPRAPI.DLL C:\WINNT\system32\MPRAPI.DLL
OLE32.DLL C:\WINNT\system32\OLE32.DLL
OLEAUT32.DLL C:\WINNT\system32\OLEAUT32.DLL
ACTIVEDS.DLL C:\WINNT\system32\ACTIVEDS.DLL
ADSLDPC.DLL C:\WINNT\system32\ADSLDPC.DLL
RTUTILS.DLL C:\WINNT\system32\RTUTILS.DLL
SETUPAPI.DLL C:\WINNT\system32\SETUPAPI.DLL
RASAPI32.DLL C:\WINNT\system32\RASAPI32.DLL
RASMAN.DLL C:\WINNT\system32\RASMAN.DLL
TAPI32.DLL C:\WINNT\system32\TAPI32.DLL
DHCPCSVC.DLL C:\WINNT\system32\DHCPCSVC.DLL
winrnr.dll C:\WINNT\System32\winrnr.dll
rasadhlp.dll C:\WINNT\system32\rasadhlp.dll
MSIDLE.DLL C:\WINNT\system32\MSIDLE.DLL
Pid:616(0x00000268) WinMgmt.exe C:\WINNT\System32\WBEM\WinMgmt.exe
ntdll.dll C:\WINNT\system32\ntdll.dll
wbemcomn.dll C:\WINNT\System32\WBEM\wbemcomn.dll
USER32.dll C:\WINNT\system32\USER32.dll
KERNEL32.DLL C:\WINNT\system32\KERNEL32.DLL
GDI32.DLL C:\WINNT\system32\GDI32.DLL
MSVCRT.dll C:\WINNT\system32\MSVCRT.dll
ADVAPI32.dll C:\WINNT\system32\ADVAPI32.dll
RPCRT4.DLL C:\WINNT\system32\RPCRT4.DLL
OLEAUT32.dll C:\WINNT\system32\OLEAUT32.dll
ole32.dll C:\WINNT\system32\ole32.dll
CLBCATQ.DLL C:\WINNT\system32\CLBCATQ.DLL
Pid:276(0x00000114) Explorer.EXE C:\WINNT\Explorer.EXE
ntdll.dll C:\WINNT\system32\ntdll.dll
ADVAPI32.DLL C:\WINNT\system32\ADVAPI32.DLL
KERNEL32.DLL C:\WINNT\system32\KERNEL32.DLL
RPCRT4.DLL C:\WINNT\system32\RPCRT4.DLL
GDI32.DLL C:\WINNT\system32\GDI32.DLL
USER32.DLL C:\WINNT\system32\USER32.DLL
SHLWAPI.DLL C:\WINNT\system32\SHLWAPI.DLL
msvcrt.dll C:\WINNT\system32\msvcrt.dll
COMCTL32.DLL C:\WINNT\system32\COMCTL32.DLL
shim.dll C:\WINNT\system32\shim.dll
AcLayers.DLL C:\WINNT\AppPatch\AcLayers.DLL
SHELL32.dll C:\WINNT\system32\SHELL32.dll
OLE32.DLL C:\WINNT\system32\OLE32.DLL
CLBCATQ.DLL C:\WINNT\system32\CLBCATQ.DLL
OLEAUT32.dll C:\WINNT\system32\OLEAUT32.dll
cscui.dll C:\WINNT\system32\cscui.dll
CSCDLL.DLL C:\WINNT\system32\CSCDLL.DLL
SHDOCVW.DLL C:\WINNT\system32\SHDOCVW.DLL
browseui.dll C:\WINNT\system32\browseui.dll
USERENV.DLL C:\WINNT\system32\USERENV.DLL
MPR.DLL C:\WINNT\system32\MPR.DLL
ntshrui.dll C:\WINNT\system32\ntshrui.dll
ATL.DLL C:\WINNT\system32\ATL.DLL
NETAPI32.DLL C:\WINNT\system32\NETAPI32.DLL
SECUR32.DLL C:\WINNT\system32\SECUR32.DLL
NETRAP.DLL C:\WINNT\system32\NETRAP.DLL
SAMLIB.DLL C:\WINNT\system32\SAMLIB.DLL
WS2_32.DLL C:\WINNT\system32\WS2_32.DLL
WS2HELP.DLL C:\WINNT\system32\WS2HELP.DLL
WLDAP32.DLL C:\WINNT\system32\WLDAP32.DLL
DNSAPI.DLL C:\WINNT\system32\DNSAPI.DLL
WSOCK32.DLL C:\WINNT\system32\WSOCK32.DLL
mydocs.dll C:\WINNT\system32\mydocs.dll
stobject.dll C:\WINNT\system32\stobject.dll
BATMETER.DLL C:\WINNT\system32\BATMETER.DLL
SETUPAPI.DLL C:\WINNT\system32\SETUPAPI.DLL
POWRPROF.DLL C:\WINNT\system32\POWRPROF.DLL
WINMM.DLL C:\WINNT\system32\WINMM.DLL
NETSHELL.dll C:\WINNT\system32\NETSHELL.dll
MSI.DLL C:\WINNT\system32\MSI.DLL
wdmaud.drv C:\WINNT\system32\wdmaud.drv
msacm32.drv C:\WINNT\system32\msacm32.drv
MSACM32.dll C:\WINNT\system32\MSACM32.dll
browselc.dll C:\WINNT\system32\browselc.dll
urlmon.dll C:\WINNT\system32\urlmon.dll
VERSION.dll C:\WINNT\system32\VERSION.dll
LZ32.DLL C:\WINNT\system32\LZ32.DLL
WININET.dll C:\WINNT\system32\WININET.dll
CRYPT32.dll C:\WINNT\system32\CRYPT32.dll
MSASN1.DLL C:\WINNT\system32\MSASN1.DLL
LINKINFO.DLL C:\WINNT\system32\LINKINFO.DLL
igfxpph.dll C:\WINNT\System32\igfxpph.dll
hccutils.DLL C:\WINNT\System32\hccutils.DLL
igfxres.dll C:\WINNT\system32\igfxres.dll
igfxsrvc.dll C:\WINNT\System32\igfxsrvc.dll
igfxdev.dll C:\WINNT\System32\igfxdev.dll
winspool.drv C:\WINNT\system32\winspool.drv
WINTRUST.dll C:\WINNT\system32\WINTRUST.dll
IMAGEHLP.dll C:\WINNT\system32\IMAGEHLP.dll
rsaenh.dll C:\WINNT\system32\rsaenh.dll
cryptnet.dll C:\WINNT\system32\cryptnet.dll
RASAPI32.DLL C:\WINNT\system32\RASAPI32.DLL
RASMAN.DLL C:\WINNT\system32\RASMAN.DLL
TAPI32.DLL C:\WINNT\system32\TAPI32.DLL
RTUTILS.DLL C:\WINNT\system32\RTUTILS.DLL
sensapi.dll C:\WINNT\system32\sensapi.dll
rsabase.dll C:\WINNT\system32\rsabase.dll
rnr20.dll C:\WINNT\System32\rnr20.dll
iphlpapi.dll C:\WINNT\system32\iphlpapi.dll
ICMP.DLL C:\WINNT\system32\ICMP.DLL
MPRAPI.DLL C:\WINNT\system32\MPRAPI.DLL
ACTIVEDS.DLL C:\WINNT\system32\ACTIVEDS.DLL
ADSLDPC.DLL C:\WINNT\system32\ADSLDPC.DLL
DHCPCSVC.DLL C:\WINNT\system32\DHCPCSVC.DLL
winrnr.dll C:\WINNT\System32\winrnr.dll
rasadhlp.dll C:\WINNT\system32\rasadhlp.dll
ntlanman.dll C:\WINNT\System32\ntlanman.dll
NETUI0.DLL C:\WINNT\System32\NETUI0.DLL
NETUI1.DLL C:\WINNT\System32\NETUI1.DLL
CfgMgr32.dll C:\WINNT\system32\CfgMgr32.dll
igfxress.dll C:\WINNT\system32\igfxress.dll
powercfg.cpl C:\WINNT\system32\powercfg.cpl
igfxcpl.cpl C:\WINNT\system32\igfxcpl.cpl
shdoclc.dll C:\WINNT\system32\shdoclc.dll
Pid:292(0x00000124) NOTEPAD.EXE C:\WINNT\system32\NOTEPAD.EXE
ntdll.dll C:\WINNT\system32\ntdll.dll
comdlg32.dll C:\WINNT\system32\comdlg32.dll
SHLWAPI.DLL C:\WINNT\system32\SHLWAPI.DLL
msvcrt.dll C:\WINNT\system32\msvcrt.dll
KERNEL32.dll C:\WINNT\system32\KERNEL32.dll
GDI32.dll C:\WINNT\system32\GDI32.dll
USER32.DLL C:\WINNT\system32\USER32.DLL
ADVAPI32.dll C:\WINNT\system32\ADVAPI32.dll
RPCRT4.DLL C:\WINNT\system32\RPCRT4.DLL
COMCTL32.DLL C:\WINNT\system32\COMCTL32.DLL
SHELL32.DLL C:\WINNT\system32\SHELL32.DLL
WINSPOOL.DRV C:\WINNT\system32\WINSPOOL.DRV
MPR.DLL C:\WINNT\system32\MPR.DLL
OLE32.DLL C:\WINNT\system32\OLE32.DLL
OLEAUT32.DLL C:\WINNT\system32\OLEAUT32.DLL
CLBCATQ.DLL C:\WINNT\system32\CLBCATQ.DLL
cscui.dll C:\WINNT\system32\cscui.dll
CSCDLL.DLL C:\WINNT\system32\CSCDLL.DLL
Pid:832(0x00000340) NOTEPAD.EXE C:\WINNT\system32\NOTEPAD.EXE
ntdll.dll C:\WINNT\system32\ntdll.dll
comdlg32.dll C:\WINNT\system32\comdlg32.dll
SHLWAPI.DLL C:\WINNT\system32\SHLWAPI.DLL
msvcrt.dll C:\WINNT\system32\msvcrt.dll
KERNEL32.dll C:\WINNT\system32\KERNEL32.dll
GDI32.dll C:\WINNT\system32\GDI32.dll
USER32.DLL C:\WINNT\system32\USER32.DLL
ADVAPI32.dll C:\WINNT\system32\ADVAPI32.dll
RPCRT4.DLL C:\WINNT\system32\RPCRT4.DLL
COMCTL32.DLL C:\WINNT\system32\COMCTL32.DLL
SHELL32.DLL C:\WINNT\system32\SHELL32.DLL
WINSPOOL.DRV C:\WINNT\system32\WINSPOOL.DRV
MPR.DLL C:\WINNT\system32\MPR.DLL
OLE32.DLL C:\WINNT\system32\OLE32.DLL
OLEAUT32.DLL C:\WINNT\system32\OLEAUT32.DLL
CLBCATQ.DLL C:\WINNT\system32\CLBCATQ.DLL
cscui.dll C:\WINNT\system32\cscui.dll
CSCDLL.DLL C:\WINNT\system32\CSCDLL.DLL
Pid:756(0x000002f4) cmd.exe C:\WINNT\System32\cmd.exe
ntdll.dll C:\WINNT\system32\ntdll.dll
KERNEL32.dll C:\WINNT\system32\KERNEL32.dll
USER32.dll C:\WINNT\system32\USER32.dll
GDI32.DLL C:\WINNT\system32\GDI32.DLL
ADVAPI32.dll C:\WINNT\system32\ADVAPI32.dll
RPCRT4.DLL C:\WINNT\system32\RPCRT4.DLL
MSVCRT.dll C:\WINNT\system32\MSVCRT.dll
Pid:520(0x00000208) server.exe D:\ZBI\server.exe
ntdll.dll C:\WINNT\system32\ntdll.dll
mscoree.dll C:\WINNT\system32\mscoree.dll
KERNEL32.dll C:\WINNT\system32\KERNEL32.dll
ADVAPI32.dll C:\WINNT\system32\ADVAPI32.dll
RPCRT4.DLL C:\WINNT\system32\RPCRT4.DLL
SHLWAPI.dll C:\WINNT\system32\SHLWAPI.dll
msvcrt.dll C:\WINNT\system32\msvcrt.dll
GDI32.dll C:\WINNT\system32\GDI32.dll
USER32.DLL C:\WINNT\system32\USER32.DLL
mscorwks.dll C:\WINNT\Microsoft.NET\Framework\v1.1.4322\mscorwks.dll
MSVCR71.dll C:\WINNT\Microsoft.NET\Framework\v1.1.4322\MSVCR71.dll
fusion.dll C:\WINNT\Microsoft.NET\Framework\v1.1.4322\fusion.dll
SHELL32.dll C:\WINNT\system32\SHELL32.dll
COMCTL32.DLL C:\WINNT\system32\COMCTL32.DLL
mscorlib.dll c:\winnt\microsoft.net\framework\v1.1.4322\mscorlib.dll
mscorlib.dll c:\winnt\assembly\nativeimages1_v1.1.4322\mscorlib\1.0.5000.0__b77a5c561934e089_2a5ebe9e\mscorlib.dll
mscorsn.dll C:\WINNT\Microsoft.NET\Framework\v1.1.4322\mscorsn.dll
MSCORJIT.DLL C:\WINNT\Microsoft.NET\Framework\v1.1.4322\MSCORJIT.DLL
diasymreader.dll C:\WINNT\Microsoft.NET\Framework\v1.1.4322\diasymreader.dll
ole32.dll C:\WINNT\system32\ole32.dll
system.runtime.remoting.dll c:\winnt\assembly\gac\system.runtime.remoting\1.0.5000.0__b77a5c561934e089\system.runtime.remoting.dll
utility.dll d:\zbi\utility.dll
system.dll c:\winnt\assembly\gac\system\1.0.5000.0__b77a5c561934e089\system.dll
system.dll c:\winnt\assembly\nativeimages1_v1.1.4322\system\1.0.5000.0__b77a5c561934e089_7cdef39d\system.dll
value.dll d:\zbi\value.dll
scheduler.dll d:\zbi\scheduler.dll
service.dll d:\zbi\service.dll
CLBCATQ.DLL C:\WINNT\system32\CLBCATQ.DLL
OLEAUT32.dll C:\WINNT\system32\OLEAUT32.dll
ws2_32.dll C:\WINNT\system32\ws2_32.dll
WS2HELP.DLL C:\WINNT\system32\WS2HELP.DLL
rnr20.dll C:\WINNT\System32\rnr20.dll
DNSAPI.DLL C:\WINNT\system32\DNSAPI.DLL
WSOCK32.DLL C:\WINNT\system32\WSOCK32.DLL
iphlpapi.dll C:\WINNT\system32\iphlpapi.dll
ICMP.DLL C:\WINNT\system32\ICMP.DLL
MPRAPI.DLL C:\WINNT\system32\MPRAPI.DLL
SAMLIB.DLL C:\WINNT\system32\SAMLIB.DLL
NETAPI32.DLL C:\WINNT\system32\NETAPI32.DLL
SECUR32.DLL C:\WINNT\system32\SECUR32.DLL
NETRAP.DLL C:\WINNT\system32\NETRAP.DLL
WLDAP32.DLL C:\WINNT\system32\WLDAP32.DLL
ACTIVEDS.DLL C:\WINNT\system32\ACTIVEDS.DLL
ADSLDPC.DLL C:\WINNT\system32\ADSLDPC.DLL
RTUTILS.DLL C:\WINNT\system32\RTUTILS.DLL
SETUPAPI.DLL C:\WINNT\system32\SETUPAPI.DLL
USERENV.DLL C:\WINNT\system32\USERENV.DLL
RASAPI32.DLL C:\WINNT\system32\RASAPI32.DLL
RASMAN.DLL C:\WINNT\system32\RASMAN.DLL
TAPI32.DLL C:\WINNT\system32\TAPI32.DLL
DHCPCSVC.DLL C:\WINNT\system32\DHCPCSVC.DLL
winrnr.dll C:\WINNT\System32\winrnr.dll
rasadhlp.dll C:\WINNT\system32\rasadhlp.dll
msafd.dll C:\WINNT\system32\msafd.dll
wshtcpip.dll C:\WINNT\System32\wshtcpip.dll
system.xml.dll c:\winnt\assembly\gac\system.xml\1.0.5000.0__b77a5c561934e089\system.xml.dll
system.xml.dll c:\winnt\assembly\nativeimages1_v1.1.4322\system.xml\1.0.5000.0__b77a5c561934e089_e73ebeaf\system.xml.dll
rsaenh.dll C:\WINNT\system32\rsaenh.dll
CRYPT32.dll C:\WINNT\system32\CRYPT32.dll
MSASN1.DLL C:\WINNT\system32\MSASN1.DLL
datasource.dll d:\zbi\datasource.dll
cache.dll d:\zbi\cache.dll
integration.dll d:\zbi\integration.dll
mapped.dll d:\zbi\mapped.dll
system.web.dll c:\winnt\assembly\gac\system.web\1.0.5000.0__b03f5f7f11d50a3a\system.web.dll
numerics.dll d:\zbi\numerics.dll
nagc.dll D:\Program Files\NAG\CLDLL074Z\bin\nagc.dll
Pid:780(0x0000030c) cmd.exe C:\WINNT\System32\cmd.exe
ntdll.dll C:\WINNT\system32\ntdll.dll
KERNEL32.dll C:\WINNT\system32\KERNEL32.dll
USER32.dll C:\WINNT\system32\USER32.dll
GDI32.DLL C:\WINNT\system32\GDI32.DLL
ADVAPI32.dll C:\WINNT\system32\ADVAPI32.dll
RPCRT4.DLL C:\WINNT\system32\RPCRT4.DLL
MSVCRT.dll C:\WINNT\system32\MSVCRT.dll
Pid:840(0x00000348) pgclient.exe D:\ZBI\pgclient.exe
ntdll.dll C:\WINNT\system32\ntdll.dll
mscoree.dll C:\WINNT\system32\mscoree.dll
KERNEL32.dll C:\WINNT\system32\KERNEL32.dll
ADVAPI32.dll C:\WINNT\system32\ADVAPI32.dll
RPCRT4.DLL C:\WINNT\system32\RPCRT4.DLL
SHLWAPI.dll C:\WINNT\system32\SHLWAPI.dll
msvcrt.dll C:\WINNT\system32\msvcrt.dll
GDI32.dll C:\WINNT\system32\GDI32.dll
USER32.DLL C:\WINNT\system32\USER32.DLL
mscorwks.dll C:\WINNT\Microsoft.NET\Framework\v1.1.4322\mscorwks.dll
MSVCR71.dll C:\WINNT\Microsoft.NET\Framework\v1.1.4322\MSVCR71.dll
fusion.dll C:\WINNT\Microsoft.NET\Framework\v1.1.4322\fusion.dll
SHELL32.dll C:\WINNT\system32\SHELL32.dll
COMCTL32.DLL C:\WINNT\system32\COMCTL32.DLL
mscorlib.dll c:\winnt\microsoft.net\framework\v1.1.4322\mscorlib.dll
mscorlib.dll c:\winnt\assembly\nativeimages1_v1.1.4322\mscorlib\1.0.5000.0__b77a5c561934e089_2a5ebe9e\mscorlib.dll
mscorsn.dll C:\WINNT\Microsoft.NET\Framework\v1.1.4322\mscorsn.dll
MSCORJIT.DLL C:\WINNT\Microsoft.NET\Framework\v1.1.4322\MSCORJIT.DLL
diasymreader.dll C:\WINNT\Microsoft.NET\Framework\v1.1.4322\diasymreader.dll
ole32.dll C:\WINNT\system32\ole32.dll
pfgen.dll d:\zbi\pfgen.dll
utility.dll d:\zbi\utility.dll
OLEAUT32.dll C:\WINNT\system32\OLEAUT32.dll
service.dll d:\zbi\service.dll
datasource.dll d:\zbi\datasource.dll
mapped.dll d:\zbi\mapped.dll
value.dll d:\zbi\value.dll
rsaenh.dll C:\WINNT\system32\rsaenh.dll
USERENV.dll C:\WINNT\system32\USERENV.dll
CRYPT32.dll C:\WINNT\system32\CRYPT32.dll
MSASN1.DLL C:\WINNT\system32\MSASN1.DLL
CLBCATQ.DLL C:\WINNT\system32\CLBCATQ.DLL
system.runtime.remoting.dll c:\winnt\assembly\gac\system.runtime.remoting\1.0.5000.0__b77a5c561934e089\system.runtime.remoting.dll
system.dll c:\winnt\assembly\gac\system\1.0.5000.0__b77a5c561934e089\system.dll
system.dll c:\winnt\assembly\nativeimages1_v1.1.4322\system\1.0.5000.0__b77a5c561934e089_7cdef39d\system.dll
integration.dll d:\zbi\integration.dll
cache.dll d:\zbi\cache.dll
ws2_32.dll C:\WINNT\system32\ws2_32.dll
WS2HELP.DLL C:\WINNT\system32\WS2HELP.DLL
rnr20.dll C:\WINNT\System32\rnr20.dll
DNSAPI.DLL C:\WINNT\system32\DNSAPI.DLL
WSOCK32.DLL C:\WINNT\system32\WSOCK32.DLL
iphlpapi.dll C:\WINNT\system32\iphlpapi.dll
ICMP.DLL C:\WINNT\system32\ICMP.DLL
MPRAPI.DLL C:\WINNT\system32\MPRAPI.DLL
SAMLIB.DLL C:\WINNT\system32\SAMLIB.DLL
NETAPI32.DLL C:\WINNT\system32\NETAPI32.DLL
SECUR32.DLL C:\WINNT\system32\SECUR32.DLL
NETRAP.DLL C:\WINNT\system32\NETRAP.DLL
WLDAP32.DLL C:\WINNT\system32\WLDAP32.DLL
ACTIVEDS.DLL C:\WINNT\system32\ACTIVEDS.DLL
ADSLDPC.DLL C:\WINNT\system32\ADSLDPC.DLL
RTUTILS.DLL C:\WINNT\system32\RTUTILS.DLL
SETUPAPI.DLL C:\WINNT\system32\SETUPAPI.DLL
RASAPI32.DLL C:\WINNT\system32\RASAPI32.DLL
RASMAN.DLL C:\WINNT\system32\RASMAN.DLL
TAPI32.DLL C:\WINNT\system32\TAPI32.DLL
DHCPCSVC.DLL C:\WINNT\system32\DHCPCSVC.DLL
winrnr.dll C:\WINNT\System32\winrnr.dll
rasadhlp.dll C:\WINNT\system32\rasadhlp.dll
msafd.dll C:\WINNT\system32\msafd.dll
wshtcpip.dll C:\WINNT\System32\wshtcpip.dll
system.xml.dll c:\winnt\assembly\gac\system.xml\1.0.5000.0__b77a5c561934e089\system.xml.dll
system.xml.dll c:\winnt\assembly\nativeimages1_v1.1.4322\system.xml\1.0.5000.0__b77a5c561934e089_e73ebeaf\system.xml.dll
Pid:764(0x000002fc) cmd.exe C:\WINNT\System32\cmd.exe
ntdll.dll C:\WINNT\system32\ntdll.dll
KERNEL32.dll C:\WINNT\system32\KERNEL32.dll
USER32.dll C:\WINNT\system32\USER32.dll
GDI32.DLL C:\WINNT\system32\GDI32.DLL
ADVAPI32.dll C:\WINNT\system32\ADVAPI32.dll
RPCRT4.DLL C:\WINNT\system32\RPCRT4.DLL
MSVCRT.dll C:\WINNT\system32\MSVCRT.dll
Pid:752(0x000002f0) sysinfo.exe D:\work\proto\Debug\sysinfo.exe
ntdll.dll C:\WINNT\system32\ntdll.dll
KERNEL32.dll C:\WINNT\system32\KERNEL32.dll
ADVAPI32.dll C:\WINNT\system32\ADVAPI32.dll
RPCRT4.DLL C:\WINNT\system32\RPCRT4.DLL
USER32.dll C:\WINNT\system32\USER32.dll
GDI32.DLL C:\WINNT\system32\GDI32.DLL
PSAPI.DLL C:\WINNT\system32\PSAPI.DLL
********************** Missing binaries for keys
********************** /CLSID entries without corresponding class definition
'ADCS' {89E30300-764D-11d0-B282-00A0C90F56FC} in /CLSID was found in HKCR
'ComPlusMetaData.MsCorHost' {727CDF4F-3BA0-11D3-8738-00C04F79ED0D} in /CLSID was found in HKCR
'ComPlusMetaData.MsCorHost.2' {727CDF4F-3BA0-11D3-8738-00C04F79ED0D} in /CLSID was found in HKCR
'DSP.DSP' {9C123EA9-AEC9-4f75-BBC0-7565FA1398966} in /CLSID was found in HKCR
'DSP.DSPDMOProp_Chorus.1' {6F63B172-5543-4593-91CE-EDBA65B9FACDB} in /CLSID was found in HKCR
'giffile' {25336920-03F9-11cf-8FD0-00AA00686F13} in /CLSID was found in HKCR
'HeaderFooter.HeaderFooter.1' {30c3f6cd-98b5-11cf-bb82-00aa00bdce0b} in /CLSID was found in HKCR
'htmlfile' {25336920-03F9-11cf-8FD0-00AA00686F13} in /CLSID was found in HKCR
'HxDS.HxSession' {31411198-a502-11d2-bbca-00c04f8ec294} in /CLSID was found in HKCR
'HxDS.HxSession.1' {31411198-a502-11d2-bbca-00c04f8ec294} in /CLSID was found in HKCR
'igfx.CUITestConfig.1' c in /CLSID was found in HKCR
'jpegfile' {25336920-03F9-11cf-8FD0-00AA00686F13} in /CLSID was found in HKCR
'MSInfo.Document' {45ac8c63-23e2-11d1-a696-00c04fd58bc3} in /CLSID was found in HKCR
'pjpegfile' {25336920-03F9-11cf-8FD0-00AA00686F13} in /CLSID was found in HKCR
'pngfile' {25336920-03F9-11cf-8FD0-00AA00686F13} in /CLSID was found in HKCR
'SymWriter.pdb' {520DC67A-752E-11D3-8D56-00C04F680B2B} in /CLSID was found in HKCR
'TimeStamp' {b2bed2eb-4080-11d1-a3ac-00c04fb950dc} in /CLSID was found in HKCR
'WBEMComLocator' SOFTWARE\CLASSES\WBEMComLocator in /CLSID was found in HKCR
'xbmfile' {25336920-03F9-11cf-8FD0-00AA00686F13} in /CLSID was found in HKCR

1824
proto/Debug/stringres.txt Normal file

File diff suppressed because it is too large Load Diff

910
proto/Debug/strings.res Normal file
View File

@@ -0,0 +1,910 @@
#define STRING_22000 "A or Amaj [0 0 2 2 2 0] (Db E A) "
#define STRING_22001 "A or Amaj [0 4 x 2 5 0] (Db E A) "
#define STRING_22002 "A or Amaj [5 7 7 6 5 5] (Db E A) "
#define STRING_22003 "A or Amaj [x 0 2 2 2 0] (Db E A) "
#define STRING_22004 "A or Amaj [x 4 7 x x 5] (Db E A) "
#define STRING_22005 "A #5 or Aaug [x 0 3 2 2 1] (Db F A) "
#define STRING_22006 "A #5 or Aaug [x 0 x 2 2 1] (Db F A) "
#define STRING_22007 "A/Ab [x 0 2 1 2 0] (Db E Ab A) "
#define STRING_22008 "A/B [0 0 2 4 2 0] (Db E A B) "
#define STRING_22009 "A/B [x 0 7 6 0 0] (Db E A B) "
#define STRING_22010 "A/D [x 0 0 2 2 0] (Db D E A) "
#define STRING_22011 "A/D [x x 0 2 2 0] (Db D E A) "
#define STRING_22012 "A/D [x x 0 6 5 5] (Db D E A) "
#define STRING_22013 "A/D [x x 0 9 10 9] (Db D E A) "
#define STRING_22014 "A/G [3 x 2 2 2 0] (Db E G A) "
#define STRING_22015 "A/G [x 0 2 0 2 0] (Db E G A) "
#define STRING_22016 "A/G [x 0 2 2 2 3] (Db E G A) "
#define STRING_22017 "A/Gb [0 0 2 2 2 2] (Db E Gb A) "
#define STRING_22018 "A/Gb [0 x 4 2 2 0] (Db E Gb A) "
#define STRING_22019 "A/Gb [2 x 2 2 2 0] (Db E Gb A) "
#define STRING_22020 "A/Gb [x 0 4 2 2 0] (Db E Gb A) "
#define STRING_22021 "A/Gb [x x 2 2 2 2] (Db E Gb A) "
#define STRING_22022 "A5 or A(no 3rd) [5 7 7 x x 5] (E A)"
#define STRING_22023 "A5 or A(no 3rd) [x 0 2 2 x 0] (E A) "
#define STRING_22024 "A5 or A(no 3rd) [5 7 7 x x 0] (E A) "
#define STRING_22025 "A6 [0 0 2 2 2 2] (Db E Gb A) "
#define STRING_22026 "A6 [0 x 4 2 2 0] (Db E Gb A) "
#define STRING_22027 "A6 [2 x 2 2 2 0] (Db E Gb A) "
#define STRING_22028 "A6 [x 0 4 2 2 0] (Db E Gb A) "
#define STRING_22029 "A6 [x x 2 2 2 2] (Db E Gb A) "
#define STRING_22030 "A6/7 [0 0 2 0 2 2] (Db E Gb G A) "
#define STRING_22031 "A6/7 sus or A6/7 sus4 [5 5 4 0 3 0] (D E Gb G A) "
#define STRING_22032 "A6/7 sus or A6/7 sus4 [x 0 2 0 3 2] (D E Gb G A) "
#define STRING_22033 "A7 or Adom 7 [3 x 2 2 2 0] (Db E G A) "
#define STRING_22034 "A7 or Adom 7 [x 0 2 0 2 0] (Db E G A) "
#define STRING_22035 "A7 or Adom 7 [x 0 2 2 2 3] (Db E G A) "
#define STRING_22036 "A7(#5) [1 0 3 0 2 1] (Db F G A) "
#define STRING_22037 "A7/add11 or A7/11 [x 0 0 0 2 0] (Db D E G A) "
#define STRING_22038 "A7sus4 [x 0 2 0 3 0] (D E G A) "
#define STRING_22039 "A7sus4 [x 0 2 0 3 3] (D E G A) "
#define STRING_22040 "A7sus4 [x 0 2 2 3 3] (D E G A) "
#define STRING_22041 "A7sus4 [5 x 0 0 3 0] (D E G A) "
#define STRING_22042 "A7sus4 [x 0 0 0 x 0] (D E G A) "
#define STRING_22043 "Aadd9 or A2 [0 0 2 4 2 0] (Db E A B) "
#define STRING_22044 "Aadd9 or A2 [x 0 7 6 0 0] (Db E A B) "
#define STRING_22045 "Aaug/D [x x 0 2 2 1] (Db D F A) "
#define STRING_22046 "Aaug/G [1 0 3 0 2 1] (Db F G A) "
#define STRING_22047 "Ab or Abmaj [4 6 6 5 4 4] (C Eb Ab) "
#define STRING_22048 "Ab #5 or Abaug [x 3 2 1 1 0] (C E Ab) "
#define STRING_22049 "Ab/A [x x 1 2 1 4] (C Eb Ab A) "
#define STRING_22050 "Ab/F [x 8 10 8 9 8] (C Eb F Ab) "
#define STRING_22051 "Ab/F [x x 1 1 1 1] (C Eb F Ab) "
#define STRING_22052 "Ab/Gb [x x 1 1 1 2] (C Eb Gb Ab) "
#define STRING_22053 "Ab/Gb [x x 4 5 4 4] (C Eb Gb Ab) "
#define STRING_22054 "Ab5 or Ab(no 3rd)[4 6 6 x x 4] (Eb Ab)"
#define STRING_22055 "Ab6 [x 8 10 8 9 8] (C Eb F Ab) "
#define STRING_22056 "Ab6 [x x 1 1 1 1] (C Eb F Ab) "
#define STRING_22057 "Ab7 or Abdom 7 [x x 1 1 1 2] (C Eb Gb Ab) "
#define STRING_22058 "Ab7 or Abdom 7 [x x 4 5 4 4] (C Eb Gb Ab) "
#define STRING_22059 "Abdim/E [0 2 0 1 0 0] (D E Ab B) "
#define STRING_22060 "Abdim/E [0 2 2 1 3 0] (D E Ab B) "
#define STRING_22061 "Abdim/E [x 2 0 1 3 0] (D E Ab B) "
#define STRING_22062 "Abdim/E [x x 0 1 0 0] (D E Ab B) "
#define STRING_22063 "Abdim/Eb [x x 0 4 4 4] (D Eb Ab B) "
#define STRING_22064 "Abdim/F [x 2 0 1 0 1] (D F Ab B) "
#define STRING_22065 "Abdim/F [x x 0 1 0 1] (D F Ab B) "
#define STRING_22066 "Abdim/F [x x 3 4 3 4] (D F Ab B) "
#define STRING_22067 "Abdim7 [x 2 0 1 0 1] (D F Ab B) "
#define STRING_22068 "Abdim7 [x x 0 1 0 1] (D F Ab B) "
#define STRING_22069 "Abdim7 [x x 3 4 3 4] (D F Ab B) "
#define STRING_22070 "Abm [x x 6 4 4 4] (Eb Ab B) "
#define STRING_22071 "Abm/D [x x 0 4 4 4] (D Eb Ab B) "
#define STRING_22072 "Abm/E [0 2 1 1 0 0] (Eb E Ab B) "
#define STRING_22073 "Abm/E [0 x 6 4 4 0] (Eb E Ab B) "
#define STRING_22074 "Abm/E [x x 1 1 0 0] (Eb E Ab B) "
#define STRING_22075 "Abm/Gb [x x 4 4 4 4] (Eb Gb Ab B) "
#define STRING_22076 "Abm7 [x x 4 4 4 4] (Eb Gb Ab B) "
#define STRING_22077 "Absus or Absus4 [x x 6 6 4 4] (Db Eb Ab) "
#define STRING_22078 "Absus2/F [x 1 3 1 4 1] (Eb F Ab Bb) "
#define STRING_22079 "Adim/Ab [x x 1 2 1 4] (C Eb Ab A) "
#define STRING_22080 "Adim/E [0 3 x 2 4 0] (C Eb E A) "
#define STRING_22081 "Adim/F [x x 1 2 1 1] (C Eb F A) "
#define STRING_22082 "Adim/F [x x 3 5 4 5] (C Eb F A) "
#define STRING_22083 "Adim/G [x x 1 2 1 3] (C Eb G A) "
#define STRING_22084 "Adim/Gb [x x 1 2 1 2] (C Eb Gb A) "
#define STRING_22085 "Adim7 [x x 1 2 1 2] (C Eb Gb A) "
#define STRING_22086 "Am [x 0 2 2 1 0] (C E A) "
#define STRING_22087 "Am [x 0 7 5 5 5] (C E A) "
#define STRING_22088 "Am [x 3 2 2 1 0] (C E A) "
#define STRING_22089 "Am [8 12 x x x 0] (C E A) "
#define STRING_22090 "Am/B [0 0 7 5 0 0] (C E A B) "
#define STRING_22091 "Am/B [x 3 2 2 0 0] (C E A B) "
#define STRING_22092 "Am/D [x x 0 2 1 0] (C D E A) "
#define STRING_22093 "Am/D [x x 0 5 5 5] (C D E A) "
#define STRING_22094 "Am/Eb [0 3 x 2 4 0] (C Eb E A) "
#define STRING_22095 "Am/F [0 0 3 2 1 0] (C E F A) "
#define STRING_22096 "Am/F [1 3 3 2 1 0] (C E F A) "
#define STRING_22097 "Am/F [1 x 2 2 1 0] (C E F A) "
#define STRING_22098 "Am/F [x x 2 2 1 1] (C E F A) "
#define STRING_22099 "Am/F [x x 3 2 1 0] (C E F A) "
#define STRING_22100 "Am/G [0 0 2 0 1 3] (C E G A) "
#define STRING_22101 "Am/G [x 0 2 0 1 0] (C E G A) "
#define STRING_22102 "Am/G [x 0 2 2 1 3] (C E G A) "
#define STRING_22103 "Am/G [x 0 5 5 5 8] (C E G A) "
#define STRING_22104 "Am/Gb [x 0 2 2 1 2] (C E Gb A) "
#define STRING_22105 "Am/Gb [x x 2 2 1 2] (C E Gb A) "
#define STRING_22106 "Am6 [x 0 2 2 1 2] (C E Gb A) "
#define STRING_22107 "Am6 [x x 2 2 1 2] (C E Gb A) "
#define STRING_22108 "Am6 [5 x 4 5 5 5] (A Gb C E A)"
#define STRING_22109 "Am7 [0 0 2 0 1 3] (C E G A) "
#define STRING_22110 "Am7 [x 0 2 0 1 0] (C E G A) "
#define STRING_22111 "Am7 [x 0 2 2 1 3] (C E G A) "
#define STRING_22112 "Am7 [x 0 5 5 5 8] (C E G A) "
#define STRING_22113 "Am7(b5) or Ao7 [x x 1 2 1 3] (C Eb G A) "
#define STRING_22114 "Am7/add11 or Am7/11 [x 5 7 5 8 0] (C D E G A) "
#define STRING_22115 "Amaj7 or A#7 [x 0 2 1 2 0] (Db E Ab A) "
#define STRING_22116 "Amin/maj9 [x 0 6 5 5 7] (C E Ab A B) "
#define STRING_22117 "Asus or Asus4 [0 0 2 2 3 0] (D E A) "
#define STRING_22118 "Asus or Asus4 [x 0 2 2 3 0] (D E A) "
#define STRING_22119 "Asus or Asus4 [5 5 7 7 x 0] (D E A) "
#define STRING_22120 "Asus or Asus4 [x 0 0 2 3 0] (D E A) "
#define STRING_22121 "Asus2 or Aadd9(no3)[0 0 2 2 0 0] (E A B) "
#define STRING_22122 "Asus2 or Aadd9(no3)[0 0 2 4 0 0] (E A B) "
#define STRING_22123 "Asus2 or Aadd9(no3)[0 2 2 2 0 0] (E A B) "
#define STRING_22124 "Asus2 or Aadd9(no3)[x 0 2 2 0 0] (E A B) "
#define STRING_22125 "Asus2 or Aadd9(no3)[x x 2 2 0 0] (E A B) "
#define STRING_22126 "Asus2/Ab [x 0 2 1 0 0] (E Ab A B) "
#define STRING_22127 "Asus2/C [0 0 7 5 0 0] (C E A B) "
#define STRING_22128 "Asus2/C [x 3 2 2 0 0] (C E A B) "
#define STRING_22129 "Asus2/D [0 2 0 2 0 0] (D E A B) "
#define STRING_22130 "Asus2/D [x 2 0 2 3 0] (D E A B) "
#define STRING_22131 "Asus2/Db [0 0 2 4 2 0] (Db E A B) "
#define STRING_22132 "Asus2/Db [x 0 7 6 0 0] (Db E A B) "
#define STRING_22133 "Asus2/Eb [x 2 1 2 0 0] (Eb E A B) "
#define STRING_22134 "Asus2/F [0 0 3 2 0 0] (E F A B) "
#define STRING_22135 "Asus2/G [3 x 2 2 0 0] (E G A B) "
#define STRING_22136 "Asus2/G [x 0 2 0 0 0] (E G A B) "
#define STRING_22137 "Asus2/G [x 0 5 4 5 0] (E G A B) "
#define STRING_22138 "Asus2/Gb [x 0 4 4 0 0] (E Gb A B) "
#define STRING_22139 "Asus2/Gb [x 2 4 2 5 2] (E Gb A B) "
#define STRING_22140 "Asus4/Ab [4 x 0 2 3 0] (D E Ab A) "
#define STRING_22141 "Asus4/B [0 2 0 2 0 0] (D E A B) "
#define STRING_22142 "Asus4/Bb [0 1 x 2 3 0] (D E A Bb) "
#define STRING_22143 "Asus4/C [x x 0 2 1 0] (C D E A) "
#define STRING_22144 "Asus4/C [x x 0 5 5 5] (C D E A) "
#define STRING_22145 "Asus4/Db [x 0 0 2 2 0] (Db D E A) "
#define STRING_22146 "Asus4/Db [x x 0 2 2 0] (Db D E A) "
#define STRING_22147 "Asus4/Db [x x 0 6 5 5] (Db D E A) "
#define STRING_22148 "Asus4/Db [x x 0 9 10 9] (Db D E A) "
#define STRING_22149 "Asus4/F [x x 7 7 6 0] (D E F A) "
#define STRING_22150 "Asus4/G [x 0 2 0 3 0] (D E G A) "
#define STRING_22151 "Asus4/G [x 0 2 0 3 3] (D E G A) "
#define STRING_22152 "Asus4/G [x 0 2 2 3 3] (D E G A) "
#define STRING_22153 "Asus4/G [x 0 0 0 x 0] (D E G A) "
#define STRING_22154 "Asus4/Gb [0 0 0 2 3 2] (D E Gb A) "
#define STRING_22155 "Asus4/Gb [0 0 4 2 3 0] (D E Gb A) "
#define STRING_22156 "Asus4/Gb [2 x 0 2 3 0] (D E Gb A) "
#define STRING_22157 "Asus4/Gb [x 0 2 2 3 2] (D E Gb A) "
#define STRING_22158 "Asus4/Gb [x x 2 2 3 2] (D E Gb A) "
#define STRING_22159 "Asus4/Gb [x 5 4 2 3 0] (D E Gb A) "
#define STRING_22160 "Asus4/Gb [x 9 7 7 x 0] (D E Gb A) "
#define STRING_22161 "B or Bmaj [x 2 4 4 4 2] (Eb Gb B) "
#define STRING_22162 "B #5 or Baug [3 2 1 0 0 3] (Eb G B) "
#define STRING_22163 "B #5 or Baug [3 x 1 0 0 3] (Eb G B) "
#define STRING_22164 "B/A [2 x 1 2 0 2] (Eb Gb A B) "
#define STRING_22165 "B/A [x 0 1 2 0 2] (Eb Gb A B) "
#define STRING_22166 "B/A [x 2 1 2 0 2] (Eb Gb A B) "
#define STRING_22167 "B/A [x 2 4 2 4 2] (Eb Gb A B) "
#define STRING_22168 "B/Ab [x x 4 4 4 4] (Eb Gb Ab B) "
#define STRING_22169 "B/E [x 2 2 4 4 2] (Eb E Gb B) "
#define STRING_22170 "B/E [x x 4 4 4 0] (Eb E Gb B) "
#define STRING_22171 "B5 or B(no 3rd) [7 9 9 x x 2] (Gb B)"
#define STRING_22172 "B5 or B(no 3rd) [x 2 4 4 x 2] (Gb B)"
#define STRING_22173 "B6 [x x 4 4 4 4] (Eb Gb Ab B) "
#define STRING_22174 "B7 or Bdom 7 [2 x 1 2 0 2] (Eb Gb A B) "
#define STRING_22175 "B7 or Bdom 7 [x 0 1 2 0 2] (Eb Gb A B) "
#define STRING_22176 "B7 or Bdom 7 [x 2 1 2 0 2] (Eb Gb A B) "
#define STRING_22177 "B7 or Bdom 7 [x 2 4 2 4 2] (Eb Gb A B) "
#define STRING_22178 "B7/add11 or B7/11 [0 0 4 4 4 0] (Eb E Gb A B) "
#define STRING_22179 "B7/add11 or B7/11 [0 2 1 2 0 2] (Eb E Gb A B) "
#define STRING_22180 "B7sus4 [x 0 4 4 0 0] (E Gb A B) "
#define STRING_22181 "B7sus4 [x 2 4 2 5 2] (E Gb A B) "
#define STRING_22182 "Baug/E [3 x 1 0 0 0] (Eb E G B) "
#define STRING_22183 "Baug/E [x x 1 0 0 0] (Eb E G B) "
#define STRING_22184 "Bb or Bbmaj [1 1 3 3 3 1] (D F Bb) "
#define STRING_22185 "Bb or Bbmaj [x 1 3 3 3 1] (D F Bb) "
#define STRING_22186 "Bb or Bbmaj [x x 0 3 3 1] (D F Bb) "
#define STRING_22187 "Bb #5 or Bbaug [x x 0 3 3 2] (D Gb Bb) "
#define STRING_22188 "Bb b5 [x x 0 3 x 0] (D E Bb) "
#define STRING_22189 "Bb/A [1 1 3 2 3 1] (D F A Bb) "
#define STRING_22190 "Bb/Ab [x 1 3 1 3 1] (D F Ab Bb) "
#define STRING_22191 "Bb/Ab [x x 3 3 3 4] (D F Ab Bb) "
#define STRING_22192 "Bb/Db [x x 0 6 6 6] (Db D F Bb) "
#define STRING_22193 "Bb/E [x 1 3 3 3 0] (D E F Bb) "
#define STRING_22194 "Bb/G [3 5 3 3 3 3] (D F G Bb) "
#define STRING_22195 "Bb/G [x x 3 3 3 3] (D F G Bb) "
#define STRING_22196 "Bb5 or Bb(no 3rd)[6 8 8 x x 6] (F Bb)"
#define STRING_22197 "Bb5 or Bb(no 3rd)[x 1 3 3 x 6] (F Bb)"
#define STRING_22198 "Bb6 [3 5 3 3 3 3] (D F G Bb) "
#define STRING_22199 "Bb6 [x x 3 3 3 3] (D F G Bb) "
#define STRING_22200 "Bb6/add9 or Bb6/9 [x 3 3 3 3 3] (C D F G Bb) "
#define STRING_22201 "Bb7 or Bbdom 7 [x 1 3 1 3 1] (D F Ab Bb) "
#define STRING_22202 "Bb7 or Bbdom 7 [x x 3 3 3 4] (D F Ab Bb) "
#define STRING_22203 "Bb7sus4 [x 1 3 1 4 1] (Eb F Ab Bb) "
#define STRING_22204 "Bbadd#11 [x 1 3 3 3 0] (D E F Bb) "
#define STRING_22205 "Bbaug/E [2 x 4 3 3 0] (D E Gb Bb) "
#define STRING_22206 "Bbdim/C [x 3 x 3 2 0] (C Db E Bb) "
#define STRING_22207 "Bbdim/D [x x 0 3 2 0] (Db D E Bb) "
#define STRING_22208 "Bbdim/G [x 1 2 0 2 0] (Db E G Bb) "
#define STRING_22209 "Bbdim/G [x x 2 3 2 3] (Db E G Bb) "
#define STRING_22210 "Bbdim/Gb [2 4 2 3 2 2] (Db E Gb Bb) "
#define STRING_22211 "Bbdim/Gb [x x 4 3 2 0] (Db E Gb Bb) "
#define STRING_22212 "Bbdim7 [x 1 2 0 2 0] (Db E G Bb) "
#define STRING_22213 "Bbdim7 [x x 2 3 2 3] (Db E G Bb) "
#define STRING_22214 "Bbm [1 1 3 3 2 1] (Db F Bb) "
#define STRING_22215 "Bbm/Ab [x 1 3 1 2 1] (Db F Ab Bb) "
#define STRING_22216 "Bbm/D [x x 0 6 6 6] (Db D F Bb) "
#define STRING_22217 "Bbm/Gb [x x 3 3 2 2] (Db F Gb Bb) "
#define STRING_22218 "Bbm7 [x 1 3 1 2 1] (Db F Ab Bb) "
#define STRING_22219 "Bbm6 [7 x 6 7 7 7 (B Ab D Gb B) "
#define STRING_22220 "Bbmaj7 or Bb#7 [1 1 3 2 3 1] (D F A Bb) "
#define STRING_22221 "Bbmaj9 or Bb9(#7) [x 3 3 3 3 5] (C D F A Bb) "
#define STRING_22222 "Bbsus2 or Bbadd9(no3)[x x 3 3 1 1] (C F Bb) "
#define STRING_22223 "Bbsus2/G [x 3 5 3 6 3] (C F G Bb) "
#define STRING_22224 "Bbsus4/Ab [x 1 3 1 4 1] (Eb F Ab Bb) "
#define STRING_22225 "Bdim/A [1 2 3 2 3 1] (D F A B) "
#define STRING_22226 "Bdim/A [x 2 0 2 0 1] (D F A B) "
#define STRING_22227 "Bdim/A [x x 0 2 0 1] (D F A B) "
#define STRING_22228 "Bdim/Ab [x 2 0 1 0 1] (D F Ab B) "
#define STRING_22229 "Bdim/Ab [x x 0 1 0 1] (D F Ab B) "
#define STRING_22230 "Bdim/Ab [x x 3 4 3 4] (D F Ab B) "
#define STRING_22231 "Bdim/G [1 x 0 0 0 3] (D F G B) "
#define STRING_22232 "Bdim/G [3 2 0 0 0 1] (D F G B) "
#define STRING_22233 "Bdim/G [x x 0 0 0 1] (D F G B) "
#define STRING_22234 "Bdim7 [x 2 0 1 0 1] (D F Ab B) "
#define STRING_22235 "Bdim7 [x x 0 1 0 1] (D F Ab B) "
#define STRING_22236 "Bdim7 [x x 3 4 3 4] (D F Ab B) "
#define STRING_22237 "Bm [2 2 4 4 3 2] (D Gb B) "
#define STRING_22238 "Bm [x 2 4 4 3 2] (D Gb B) "
#define STRING_22239 "Bm [x x 0 4 3 2] (D Gb B) "
#define STRING_22240 "Bm/A [x 0 4 4 3 2] (D Gb A B) "
#define STRING_22241 "Bm/A [x 2 0 2 0 2] (D Gb A B) "
#define STRING_22242 "Bm/A [x 2 0 2 3 2] (D Gb A B) "
#define STRING_22243 "Bm/A [x 2 4 2 3 2] (D Gb A B) "
#define STRING_22244 "Bm/A [x x 0 2 0 2] (D Gb A B) "
#define STRING_22245 "Bm/G [2 2 0 0 0 3] (D Gb G B) "
#define STRING_22246 "Bm/G [2 2 0 0 3 3] (D Gb G B) "
#define STRING_22247 "Bm/G [3 2 0 0 0 2] (D Gb G B) "
#define STRING_22248 "Bm/G [x x 4 4 3 3] (D Gb G B) "
#define STRING_22249 "Bm7 [x 0 4 4 3 2] (D Gb A B) "
#define STRING_22250 "Bm7 [x 2 0 2 0 2] (D Gb A B) "
#define STRING_22251 "Bm7 [x 2 0 2 3 2] (D Gb A B) "
#define STRING_22252 "Bm7 [x 2 4 2 3 2] (D Gb A B) "
#define STRING_22253 "Bm7 [x x 0 2 0 2] (D Gb A B) "
#define STRING_22254 "Bm7(b5) or Bo7 [1 2 3 2 3 1] (D F A B) "
#define STRING_22255 "Bm7(b5) or Bo7 [x 2 0 2 0 1] (D F A B) "
#define STRING_22256 "Bm7(b5) or Bo7 [x x 0 2 0 1] (D F A B) "
#define STRING_22257 "Bm7/add11 or Bm7/11 [0 0 2 4 3 2] (D E Gb A B) "
#define STRING_22258 "Bm7/add11 or Bm7/11 [0 2 0 2 0 2] (D E Gb A B) "
#define STRING_22259 "Bmaj7/#11 [x 2 3 3 4 2] (Eb F Gb Bb B) "
#define STRING_22260 "Bsus or Bsus4 [7 9 9 x x 0] (E Gb B) "
#define STRING_22261 "Bsus or Bsus4 [x 2 4 4 x 0] (E Gb B) "
#define STRING_22262 "Bsus2 or Badd9(no3)[x 4 4 4 x 2] (Db Gb B)"
#define STRING_22263 "Bsus2 or Badd9(no3)[x x 4 4 2 2] (Db Gb B) "
#define STRING_22264 "Bsus2/E [x 4 4 4 x 0] (Db E Gb B) "
#define STRING_22265 "Bsus4/A [x 0 4 4 0 0] (E Gb A B) "
#define STRING_22266 "Bsus4/A [x 2 4 2 5 2] (E Gb A B) "
#define STRING_22267 "Bsus4/Ab [0 2 2 1 0 2] (E Gb Ab B) "
#define STRING_22268 "Bsus4/Ab [0 x 4 1 0 0] (E Gb Ab B) "
#define STRING_22269 "Bsus4/Ab [2 2 2 1 0 0] (E Gb Ab B) "
#define STRING_22270 "Bsus4/Db [x 4 4 4 x 0] (Db E Gb B) "
#define STRING_22271 "Bsus4/Eb [x 2 2 4 4 2] (Eb E Gb B) "
#define STRING_22272 "Bsus4/Eb [x x 4 4 4 0] (Eb E Gb B) "
#define STRING_22273 "Bsus4/G [0 2 2 0 0 2] (E Gb G B) "
#define STRING_22274 "Bsus4/G [0 2 4 0 0 0] (E Gb G B) "
#define STRING_22275 "Bsus4/G [0 x 4 0 0 0] (E Gb G B) "
#define STRING_22276 "Bsus4/G [2 2 2 0 0 0] (E Gb G B) "
#define STRING_22277 "C or Cmaj [0 3 2 0 1 0] (C E G) "
#define STRING_22278 "C or Cmaj [0 3 5 5 5 3] (C E G) "
#define STRING_22279 "C or Cmaj [3 3 2 0 1 0] (C E G) "
#define STRING_22280 "C or Cmaj [3 x 2 0 1 0] (C E G) "
#define STRING_22281 "C or Cmaj [x 3 2 0 1 0] (C E G) "
#define STRING_22282 "C or Cmaj [x 3 5 5 5 0] (C E G) "
#define STRING_22283 "C #5 or Caug [x 3 2 1 1 0] (C E Ab) "
#define STRING_22284 "C b5 [x x 4 5 x 0] (C E Gb) "
#define STRING_22285 "C/A [0 0 2 0 1 3] (C E G A) "
#define STRING_22286 "C/A [x 0 2 0 1 0] (C E G A) "
#define STRING_22287 "C/A [x 0 2 2 1 3] (C E G A) "
#define STRING_22288 "C/A [x 0 5 5 5 8] (C E G A) "
#define STRING_22289 "C/B [0 3 2 0 0 0] (C E G B) "
#define STRING_22290 "C/B [x 2 2 0 1 0] (C E G B) "
#define STRING_22291 "C/B [x 3 5 4 5 3] (C E G B) "
#define STRING_22292 "C/Bb [x 3 5 3 5 3] (C E G Bb) "
#define STRING_22293 "C/D [3 x 0 0 1 0] (C D E G) "
#define STRING_22294 "C/D [x 3 0 0 1 0] (C D E G) "
#define STRING_22295 "C/D [x 3 2 0 3 0] (C D E G) "
#define STRING_22296 "C/D [x 3 2 0 3 3] (C D E G) "
#define STRING_22297 "C/D [x x 0 0 1 0] (C D E G) "
#define STRING_22298 "C/D [x x 0 5 5 3] (C D E G) "
#define STRING_22299 "C/D [x 10 12 12 13 0] (C D E G) "
#define STRING_22300 "C/D [x 5 5 5 x 0] (C D E G) "
#define STRING_22301 "C/F [x 3 3 0 1 0] (C E F G) "
#define STRING_22302 "C/F [x x 3 0 1 0] (C E F G) "
#define STRING_22303 "C5 or C(no 3rd) [x 3 5 5 x 3] (C G)"
#define STRING_22304 "C6 [0 0 2 0 1 3] (C E G A) "
#define STRING_22305 "C6 [x 0 2 0 1 0] (C E G A) "
#define STRING_22306 "C6 [x 0 2 2 1 3] (C E G A) "
#define STRING_22307 "C6 [x 0 5 5 5 8] (C E G A) "
#define STRING_22308 "C6/add9 or C6/9 [x 5 7 5 8 0] (C D E G A) "
#define STRING_22309 "C7 or Cdom 7 [x 3 5 3 5 3] (C E G Bb) "
#define STRING_22310 "C7sus4 [x 3 5 3 6 3] (C F G Bb) "
#define STRING_22311 "C9(b5) [0 3 x 3 3 2] (C D E Gb Bb) "
#define STRING_22312 "Cadd9 or C2 [3 x 0 0 1 0] (C D E G) "
#define STRING_22313 "Cadd9 or C2 [x 3 0 0 1 0] (C D E G) "
#define STRING_22314 "Cadd9 or C2 [x 3 2 0 3 0] (C D E G) "
#define STRING_22315 "Cadd9 or C2 [x 3 2 0 3 3] (C D E G) "
#define STRING_22316 "Cadd9 or C2 [x x 0 0 1 0] (C D E G) "
#define STRING_22317 "Cadd9 or C2 [x x 0 5 5 3] (C D E G) "
#define STRING_22318 "Cadd9 or C2 [x 10 12 12 13 0] (C D E G) "
#define STRING_22319 "Cadd9 or C2 [x 3 2 0 3 0] (C D E G) "
#define STRING_22320 "Cadd9 or C2 [x 5 5 5 x 0] (C D E G) "
#define STRING_22321 "Cdim/A [x x 1 2 1 2] (C Eb Gb A) "
#define STRING_22322 "Cdim/Ab [x x 1 1 1 2] (C Eb Gb Ab) "
#define STRING_22323 "Cdim/Ab [x x 4 5 4 4] (C Eb Gb Ab) "
#define STRING_22324 "Cdim/D [x 5 4 5 4 2] (C D Eb Gb)"
#define STRING_22325 "Cdim7 [x x 1 2 1 2] (C Eb Gb A) "
#define STRING_22326 "Cm [x 3 5 5 4 3] (C Eb G) "
#define STRING_22327 "Cm [x x 5 5 4 3] (C Eb G) "
#define STRING_22328 "Cm/A [x x 1 2 1 3] (C Eb G A) "
#define STRING_22329 "Cm/Bb [x 3 5 3 4 3] (C Eb G Bb) "
#define STRING_22330 "Cm6 [x x 1 2 1 3] (C Eb G A) "
#define STRING_22331 "Cm6 [8 x 7 8 8 8] (C A Eb G C) "
#define STRING_22332 "Cm7 [x 3 5 3 4 3] (C Eb G Bb) "
#define STRING_22333 "Cmaj7 or C#7 [0 3 2 0 0 0] (C E G B) "
#define STRING_22334 "Cmaj7 or C#7 [x 2 2 0 1 0] (C E G B) "
#define STRING_22335 "Cmaj7 or C#7 [x 3 5 4 5 3] (C E G B) "
#define STRING_22336 "Cmaj9 or C9(#7) [x 3 0 0 0 0] (C D E G B) "
#define STRING_22337 "Csus or Csus4 [x 3 3 0 1 1] (C F G) "
#define STRING_22338 "Csus or Csus4 [x x 3 0 1 1] (C F G) "
#define STRING_22339 "Csus2 or Cadd9(no3)[x 10 12 12 13 3] (C D G)"
#define STRING_22340 "Csus2 or Cadd9(no3)[x 5 5 5 x 3] (C D G)"
#define STRING_22341 "Csus2 or Cadd9(no3)[x 3 0 0 3 3] (C D G) "
#define STRING_22342 "Csus2 or Cadd9(no3)[x 3 5 5 3 3] (C D G) "
#define STRING_22343 "Csus2/A [x 5 7 5 8 3] (C D G A)"
#define STRING_22344 "Csus2/A [x x 0 2 1 3] (C D G A) "
#define STRING_22345 "Csus2/B [3 3 0 0 0 3] (C D G B) "
#define STRING_22346 "Csus2/B [x 3 0 0 0 3] (C D G B) "
#define STRING_22347 "Csus2/E [3 x 0 0 1 0] (C D E G) "
#define STRING_22348 "Csus2/E [x 3 0 0 1 0] (C D E G) "
#define STRING_22349 "Csus2/E [x 3 2 0 3 0] (C D E G) "
#define STRING_22350 "Csus2/E [x 3 2 0 3 3] (C D E G) "
#define STRING_22351 "Csus2/E [x x 0 0 1 0] (C D E G) "
#define STRING_22352 "Csus2/E [x x 0 5 5 3] (C D E G) "
#define STRING_22353 "Csus2/E [x 10 12 12 13 0] (C D E G) "
#define STRING_22354 "Csus2/E [x 5 5 5 x 0] (C D E G) "
#define STRING_22355 "Csus2/F [3 3 0 0 1 1] (C D F G) "
#define STRING_22356 "Csus4/A [3 x 3 2 1 1] (C F G A) "
#define STRING_22357 "Csus4/A [x x 3 2 1 3] (C F G A) "
#define STRING_22358 "Csus4/B [x 3 3 0 0 3] (C F G B) "
#define STRING_22359 "Csus4/Bb [x 3 5 3 6 3] (C F G Bb) "
#define STRING_22360 "Csus4/D [3 3 0 0 1 1] (C D F G) "
#define STRING_22361 "Csus4/E [x 3 3 0 1 0] (C E F G) "
#define STRING_22362 "Csus4/E [x x 3 0 1 0] (C E F G) "
#define STRING_22363 "D or Dmaj [x 5 4 2 3 2] (D Gb A)"
#define STRING_22364 "D or Dmaj [x 9 7 7 x 2] (D Gb A)"
#define STRING_22365 "D or Dmaj [2 0 0 2 3 2] (D Gb A) "
#define STRING_22366 "D or Dmaj [x 0 0 2 3 2] (D Gb A) "
#define STRING_22367 "D or Dmaj [x 0 4 2 3 2] (D Gb A) "
#define STRING_22368 "D or Dmaj [x x 0 2 3 2] (D Gb A) "
#define STRING_22369 "D or Dmaj [x x 0 7 7 5] (D Gb A) "
#define STRING_22370 "D #5 or Daug [x x 0 3 3 2] (D Gb Bb) "
#define STRING_22371 "D/B [x 0 4 4 3 2] (D Gb A B) "
#define STRING_22372 "D/B [x 2 0 2 0 2] (D Gb A B) "
#define STRING_22373 "D/B [x 2 0 2 3 2] (D Gb A B) "
#define STRING_22374 "D/B [x 2 4 2 3 2] (D Gb A B) "
#define STRING_22375 "D/B [x x 0 2 0 2] (D Gb A B) "
#define STRING_22376 "D/C [x 5 7 5 7 2] (C D Gb A)"
#define STRING_22377 "D/C [x 0 0 2 1 2] (C D Gb A) "
#define STRING_22378 "D/C [x 3 x 2 3 2] (C D Gb A) "
#define STRING_22379 "D/C [x 5 7 5 7 5] (C D Gb A) "
#define STRING_22380 "D/Db [x x 0 14 14 14] (Db D Gb A) "
#define STRING_22381 "D/Db [x x 0 2 2 2] (Db D Gb A) "
#define STRING_22382 "D/E [0 0 0 2 3 2] (D E Gb A) "
#define STRING_22383 "D/E [0 0 4 2 3 0] (D E Gb A) "
#define STRING_22384 "D/E [2 x 0 2 3 0] (D E Gb A) "
#define STRING_22385 "D/E [x 0 2 2 3 2] (D E Gb A) "
#define STRING_22386 "D/E [x x 2 2 3 2] (D E Gb A) "
#define STRING_22387 "D/E [x 5 4 2 3 0] (D E Gb A) "
#define STRING_22388 "D/E [x 9 7 7 x 0] (D E Gb A) "
#define STRING_22389 "D/G [5 x 4 0 3 5] (D Gb G A)"
#define STRING_22390 "D/G [3 x 0 2 3 2] (D Gb G A) "
#define STRING_22391 "D5 or D(no 3rd) [5 5 7 7 x 5] (D A)"
#define STRING_22392 "D5 or D(no 3rd) [x 0 0 2 3 5] (D A)"
#define STRING_22393 "D6 [x 0 4 4 3 2] (D Gb A B) "
#define STRING_22394 "D6 [x 2 0 2 0 2] (D Gb A B) "
#define STRING_22395 "D6 [x 2 0 2 3 2] (D Gb A B) "
#define STRING_22396 "D6 [x 2 4 2 3 2] (D Gb A B) "
#define STRING_22397 "D6 [x x 0 2 0 2] (D Gb A B) "
#define STRING_22398 "D6/add9 or D6/9 [0 0 2 4 3 2] (D E Gb A B) "
#define STRING_22399 "D6/add9 or D6/9 [0 2 0 2 0 2] (D E Gb A B) "
#define STRING_22400 "D7 or Ddom 7 [x 5 7 5 7 2] (C D Gb A)"
#define STRING_22401 "D7 or Ddom 7 [x 0 0 2 1 2] (C D Gb A) "
#define STRING_22402 "D7 or Ddom 7 [x 3 x 2 3 2] (C D Gb A) "
#define STRING_22403 "D7 or Ddom 7 [x 5 7 5 7 5] (C D Gb A) "
#define STRING_22404 "D7sus4 [x 5 7 5 8 3] (C D G A)"
#define STRING_22405 "D7sus4 [x x 0 2 1 3] (C D G A) "
#define STRING_22406 "D9 or Ddom 9 [0 0 0 2 1 2] (C D E Gb A) "
#define STRING_22407 "D9 or Ddom 9 [2 x 0 2 1 0] (C D E Gb A) "
#define STRING_22408 "D9 or Ddom 9 [x 5 7 5 7 0] (C D E Gb A) "
#define STRING_22409 "D9(#5) [0 3 x 3 3 2] (C D E Gb Bb) "
#define STRING_22410 "Dadd9 or D2 [0 0 0 2 3 2] (D E Gb A) "
#define STRING_22411 "Dadd9 or D2 [0 0 4 2 3 0] (D E Gb A) "
#define STRING_22412 "Dadd9 or D2 [2 x 0 2 3 0] (D E Gb A) "
#define STRING_22413 "Dadd9 or D2 [x 0 2 2 3 2] (D E Gb A) "
#define STRING_22414 "Dadd9 or D2 [x x 2 2 3 2] (D E Gb A) "
#define STRING_22415 "Dadd9 or D2 [x 5 4 2 3 0] (D E Gb A) "
#define STRING_22416 "Dadd9 or D2 [x 9 7 7 x 0] (D E Gb A) "
#define STRING_22417 "Daug/E [2 x 4 3 3 0] (D E Gb Bb) "
#define STRING_22418 "Db or Dbmaj [4 4 6 6 6 4] (Db F Ab) "
#define STRING_22419 "Db or Dbmaj [x 4 3 1 2 1] (Db F Ab) "
#define STRING_22420 "Db or Dbmaj [x 4 6 6 6 4] (Db F Ab) "
#define STRING_22421 "Db or Dbmaj [x x 3 1 2 1] (Db F Ab) "
#define STRING_22422 "Db or Dbmaj [x x 6 6 6 4] (Db F Ab) "
#define STRING_22423 "Db #5 or Dbaug [x 0 3 2 2 1] (Db F A) "
#define STRING_22424 "Db #5 or Dbaug [x 0 x 2 2 1] (Db F A) "
#define STRING_22425 "Db b5 [x x 3 0 2 1] (Db F G) "
#define STRING_22426 "Db/B [x 4 3 4 0 4] (Db F Ab B) "
#define STRING_22427 "Db/Bb [x 1 3 1 2 1] (Db F Ab Bb) "
#define STRING_22428 "Db/C [x 3 3 1 2 1] (C Db F Ab) "
#define STRING_22429 "Db/C [x 4 6 5 6 4] (C Db F Ab) "
#define STRING_22430 "Db5 or Db(no 3rd)[x 4 6 6 x 4] (Db Ab)"
#define STRING_22431 "Db6 [x 1 3 1 2 1] (Db F Ab Bb) "
#define STRING_22432 "Db7 or Dbdom 7 [x 4 3 4 0 4] (Db F Ab B) "
#define STRING_22433 "Dbaug/D [x x 0 2 2 1] (Db D F A) "
#define STRING_22434 "Dbaug/G [1 0 3 0 2 1] (Db F G A) "
#define STRING_22435 "Dbdim/A [3 x 2 2 2 0] (Db E G A) "
#define STRING_22436 "Dbdim/A [x 0 2 0 2 0] (Db E G A) "
#define STRING_22437 "Dbdim/A [x 0 2 2 2 3] (Db E G A) "
#define STRING_22438 "Dbdim/B [0 2 2 0 2 0] (Db E G B) "
#define STRING_22439 "Dbdim/Bb [x 1 2 0 2 0] (Db E G Bb) "
#define STRING_22440 "Dbdim/Bb [x x 2 3 2 3] (Db E G Bb) "
#define STRING_22441 "Dbdim/D [3 x 0 0 2 0] (Db D E G) "
#define STRING_22442 "Dbdim/D [x x 0 0 2 0] (Db D E G) "
#define STRING_22443 "Dbdim7 [x 1 2 0 2 0] (Db E G Bb) "
#define STRING_22444 "Dbdim7 [x x 2 3 2 3] (Db E G Bb) "
#define STRING_22445 "Dbm [x 4 6 6 5 4] (Db E Ab) "
#define STRING_22446 "Dbm [x x 2 1 2 0] (Db E Ab) "
#define STRING_22447 "Dbm [x 4 6 6 x 0] (Db E Ab) "
#define STRING_22448 "Dbm/A [x 0 2 1 2 0] (Db E Ab A) "
#define STRING_22449 "Dbm/B [0 2 2 1 2 0] (Db E Ab B) "
#define STRING_22450 "Dbm/B [x 4 6 4 5 4] (Db E Ab B) "
#define STRING_22451 "Dbm7 [0 2 2 1 2 0] (Db E Ab B) "
#define STRING_22452 "Dbm7 [x 4 6 4 5 4] (Db E Ab B) "
#define STRING_22453 "Dbm7(b5) or Dbo7 [0 2 2 0 2 0] (Db E G B) "
#define STRING_22454 "Dbmaj7 or Db#7 [x 3 3 1 2 1] (C Db F Ab) "
#define STRING_22455 "Dbmaj7 or Db#7 [x 4 6 5 6 4] (C Db F Ab) "
#define STRING_22456 "Dbsus2 or Dbadd9(no3) [x x 6 6 4 4] (Db Eb Ab) "
#define STRING_22457 "Dbsus4/Bb [x x 4 3 2 4] (Db Gb Ab Bb) "
#define STRING_22458 "Ddim/B [x 2 0 1 0 1] (D F Ab B) "
#define STRING_22459 "Ddim/B [x x 0 1 0 1] (D F Ab B) "
#define STRING_22460 "Ddim/B [x x 3 4 3 4] (D F Ab B) "
#define STRING_22461 "Ddim/Bb [x 1 3 1 3 1] (D F Ab Bb) "
#define STRING_22462 "Ddim/Bb [x x 3 3 3 4] (D F Ab Bb) "
#define STRING_22463 "Ddim/C [x x 0 1 1 1] (C D F Ab) "
#define STRING_22464 "Ddim7 [x 2 0 1 0 1] (D F Ab B) "
#define STRING_22465 "Ddim7 [x x 0 1 0 1] (D F Ab B) "
#define STRING_22466 "Ddim7 [x x 3 4 3 4] (D F Ab B) "
#define STRING_22467 "Dm [x 0 0 2 3 1] (D F A) "
#define STRING_22468 "Dm/B [1 2 3 2 3 1] (D F A B) "
#define STRING_22469 "Dm/B [x 2 0 2 0 1] (D F A B) "
#define STRING_22470 "Dm/B [x x 0 2 0 1] (D F A B) "
#define STRING_22471 "Dm/Bb [1 1 3 2 3 1] (D F A Bb) "
#define STRING_22472 "Dm/C [x 5 7 5 6 5] (C D F A) "
#define STRING_22473 "Dm/C [x x 0 2 1 1] (C D F A) "
#define STRING_22474 "Dm/C [x x 0 5 6 5] (C D F A) "
#define STRING_22475 "Dm/Db [x x 0 2 2 1] (Db D F A) "
#define STRING_22476 "Dm/E [x x 7 7 6 0] (D E F A) "
#define STRING_22477 "Dm6 [1 2 3 2 3 1] (D F A B) "
#define STRING_22478 "Dm6 [x 2 0 2 0 1] (D F A B) "
#define STRING_22479 "Dm6 [x x 0 2 0 1] (D F A B) "
#define STRING_22480 "Dm6 [10 x 9 10 10 10] (D B F A D) "
#define STRING_22481 "Dm7 [x 5 7 5 6 5] (C D F A) "
#define STRING_22482 "Dm7 [x x 0 2 1 1] (C D F A) "
#define STRING_22483 "Dm7 [x x 0 5 6 5] (C D F A) "
#define STRING_22484 "Dm7(b5) or Do7 [x x 0 1 1 1] (C D F Ab) "
#define STRING_22485 "Dm7/add11 or Dm7/11 [3 x 0 2 1 1] (C D F G A) "
#define STRING_22486 "Dmaj7 or D#7 [x x 0 14 14 14] (Db D Gb A) "
#define STRING_22487 "Dmaj7 or D#7 [x x 0 2 2 2] (Db D Gb A) "
#define STRING_22488 "Dmin/maj7 [x x 0 2 2 1] (Db D F A) "
#define STRING_22489 "Dsus or Dsus4 [5 x 0 0 3 5] (D G A)"
#define STRING_22490 "Dsus or Dsus4 [3 0 0 0 3 3] (D G A) "
#define STRING_22491 "Dsus or Dsus4 [x 0 0 0 3 3] (D G A) "
#define STRING_22492 "Dsus or Dsus4 [x x 0 2 3 3] (D G A) "
#define STRING_22493 "Dsus2 or Dadd9(no3)[5 5 7 7 x 0] (D E A)"
#define STRING_22494 "Dsus2 or Dadd9(no3)[x 0 0 2 3 0] (D E A)"
#define STRING_22495 "Dsus2 or Dadd9(no3)[0 0 2 2 3 0] (D E A) "
#define STRING_22496 "Dsus2 or Dadd9(no3)[x 0 2 2 3 0] (D E A) "
#define STRING_22497 "Dsus2 or Dadd9(no3)[x x 0 2 3 0] (D E A) "
#define STRING_22498 "Dsus2/Ab [4 x 0 2 3 0] (D E Ab A) "
#define STRING_22499 "Dsus2/B [0 2 0 2 0 0] (D E A B) "
#define STRING_22500 "Dsus2/B [x 2 0 2 3 0] (D E A B) "
#define STRING_22501 "Dsus2/Bb [0 1 x 2 3 0] (D E A Bb) "
#define STRING_22502 "Dsus2/C [x x 0 2 1 0] (C D E A) "
#define STRING_22503 "Dsus2/C [x x 0 5 5 5] (C D E A) "
#define STRING_22504 "Dsus2/Db [x 0 0 2 2 0] (Db D E A) "
#define STRING_22505 "Dsus2/Db [x x 0 2 2 0] (Db D E A) "
#define STRING_22506 "Dsus2/Db [x x 0 6 5 5] (Db D E A) "
#define STRING_22507 "Dsus2/Db [x x 0 9 10 9] (Db D E A) "
#define STRING_22508 "Dsus2/F [x x 7 7 6 0] (D E F A) "
#define STRING_22509 "Dsus2/G [x 0 2 0 3 0] (D E G A) "
#define STRING_22510 "Dsus2/G [x 0 2 0 3 3] (D E G A) "
#define STRING_22511 "Dsus2/G [x 0 2 2 3 3] (D E G A) "
#define STRING_22512 "Dsus2/G [5 x 0 0 3 0] (D E G A) "
#define STRING_22513 "Dsus2/G [x 0 0 0 x 0] (D E G A) "
#define STRING_22514 "Dsus2/Gb [0 0 0 2 3 2] (D E Gb A) "
#define STRING_22515 "Dsus2/Gb [0 0 4 2 3 0] (D E Gb A) "
#define STRING_22516 "Dsus2/Gb [2 x 0 2 3 0] (D E Gb A) "
#define STRING_22517 "Dsus2/Gb [x 0 2 2 3 2] (D E Gb A) "
#define STRING_22518 "Dsus2/Gb [x x 2 2 3 2] (D E Gb A) "
#define STRING_22519 "Dsus2/Gb [x 5 4 2 3 0] (D E Gb A) "
#define STRING_22520 "Dsus2/Gb [x 9 7 7 x 0] (D E Gb A) "
#define STRING_22521 "Dsus4/B [3 0 0 0 0 3] (D G A B) "
#define STRING_22522 "Dsus4/B [3 2 0 2 0 3] (D G A B) "
#define STRING_22523 "Dsus4/C [x 5 7 5 8 3] (C D G A)"
#define STRING_22524 "Dsus4/C [x x 0 2 1 3] (C D G A) "
#define STRING_22525 "Dsus4/E [x 0 2 0 3 0] (D E G A) "
#define STRING_22526 "Dsus4/E [x 0 2 0 3 3] (D E G A) "
#define STRING_22527 "Dsus4/E [x 0 2 2 3 3] (D E G A) "
#define STRING_22528 "Dsus4/E [5 x 0 0 3 0] (D E G A) "
#define STRING_22529 "Dsus4/E [x 0 0 0 x 0] (D E G A) "
#define STRING_22530 "Dsus4/Gb [5 x 4 0 3 5] (D Gb G A)"
#define STRING_22531 "Dsus4/Gb [3 x 0 2 3 2] (D Gb G A) "
#define STRING_22532 "E or Emaj [0 2 2 1 0 0] (E Ab B) "
#define STRING_22533 "E or Emaj [x 7 6 4 5 0] (E Ab B) "
#define STRING_22534 "E #5 or Eaug [x 3 2 1 1 0] (C E Ab) "
#define STRING_22535 "E/A [x 0 2 1 0 0] (E Ab A B) "
#define STRING_22536 "E/D [0 2 0 1 0 0] (D E Ab B) "
#define STRING_22537 "E/D [0 2 2 1 3 0] (D E Ab B) "
#define STRING_22538 "E/D [x 2 0 1 3 0] (D E Ab B) "
#define STRING_22539 "E/D [x x 0 1 0 0] (D E Ab B) "
#define STRING_22540 "E/Db [0 2 2 1 2 0] (Db E Ab B) "
#define STRING_22541 "E/Db [x 4 6 4 5 4] (Db E Ab B) "
#define STRING_22542 "E/Eb [0 2 1 1 0 0] (Eb E Ab B) "
#define STRING_22543 "E/Eb [0 x 6 4 4 0] (Eb E Ab B) "
#define STRING_22544 "E/Eb [x x 1 1 0 0] (Eb E Ab B) "
#define STRING_22545 "E/Gb [0 2 2 1 0 2] (E Gb Ab B) "
#define STRING_22546 "E/Gb [0 x 4 1 0 0] (E Gb Ab B) "
#define STRING_22547 "E/Gb [2 2 2 1 0 0] (E Gb Ab B) "
#define STRING_22548 "E11/b9 [0 0 3 4 3 4] (D E F Ab A B) "
#define STRING_22549 "E5 or E(no 3rd) [0 2 x x x 0] (E B) "
#define STRING_22550 "E5 or E(no 3rd) [x 7 9 9 x 0] (E B) "
#define STRING_22551 "E6 [0 2 2 1 2 0] (Db E Ab B) "
#define STRING_22552 "E6 [x 4 6 4 5 4] (Db E Ab B) "
#define STRING_22553 "E7 or Edom 7 [0 2 0 1 0 0] (D E Ab B) "
#define STRING_22554 "E7 or Edom 7 [0 2 2 1 3 0] (D E Ab B) "
#define STRING_22555 "E7 or Edom 7 [x 2 0 1 3 0] (D E Ab B) "
#define STRING_22556 "E7 or Edom 7 [x x 0 1 0 0] (D E Ab B) "
#define STRING_22557 "E7/add11 or E7/11 [x 0 0 1 0 0] (D E Ab A B) "
#define STRING_22558 "E7/b9(b5) [0 1 3 1 3 1] (D E F Ab Bb) "
#define STRING_22559 "E7sus4 [0 2 0 2 0 0] (D E A B) "
#define STRING_22560 "E9 or Edom 9 [0 2 0 1 0 2] (D E Gb Ab B) "
#define STRING_22561 "E9 or Edom 9 [2 2 0 1 0 0] (D E Gb Ab B) "
#define STRING_22562 "Eadd9 or E2 [0 2 2 1 0 2] (E Gb Ab B) "
#define STRING_22563 "Eadd9 or E2 [0 x 4 1 0 0] (E Gb Ab B) "
#define STRING_22564 "Eadd9 or E2 [2 2 2 1 0 0] (E Gb Ab B) "
#define STRING_22565 "Eb or Ebmaj [x 1 1 3 4 3] (Eb G Bb) "
#define STRING_22566 "Eb or Ebmaj [x x 1 3 4 3] (Eb G Bb) "
#define STRING_22567 "Eb or Ebmaj [x x 5 3 4 3] (Eb G Bb) "
#define STRING_22568 "Eb #5 or Ebaug [3 2 1 0 0 3] (Eb G B) "
#define STRING_22569 "Eb #5 or Ebaug [3 x 1 0 0 3] (Eb G B) "
#define STRING_22570 "Eb/C [x 3 5 3 4 3] (C Eb G Bb) "
#define STRING_22571 "Eb/D [x 6 8 7 8 6] (D Eb G Bb) "
#define STRING_22572 "Eb/Db [x 1 1 3 2 3] (Db Eb G Bb) "
#define STRING_22573 "Eb/Db [x 6 8 6 8 6] (Db Eb G Bb) "
#define STRING_22574 "Eb/Db [x x 1 3 2 3] (Db Eb G Bb) "
#define STRING_22575 "Eb/E [x x 5 3 4 0] (Eb E G Bb) "
#define STRING_22576 "Eb5 or Eb(no 3rd)[x 6 8 8 x 6] (Eb Bb)"
#define STRING_22577 "Eb6 [x 3 5 3 4 3] (C Eb G Bb) "
#define STRING_22578 "Eb7 or Ebdom 7 [x 1 1 3 2 3] (Db Eb G Bb) "
#define STRING_22579 "Eb7 or Ebdom 7 [x 6 8 6 8 6] (Db Eb G Bb) "
#define STRING_22580 "Eb7 or Ebdom 7 [x x 1 3 2 3] (Db Eb G Bb) "
#define STRING_22581 "Ebaug/E [3 x 1 0 0 0] (Eb E G B) "
#define STRING_22582 "Ebaug/E [x x 1 0 0 0] (Eb E G B) "
#define STRING_22583 "Ebdim/B [2 x 1 2 0 2] (Eb Gb A B) "
#define STRING_22584 "Ebdim/B [x 0 1 2 0 2] (Eb Gb A B) "
#define STRING_22585 "Ebdim/B [x 2 1 2 0 2] (Eb Gb A B) "
#define STRING_22586 "Ebdim/B [x 2 4 2 4 2] (Eb Gb A B) "
#define STRING_22587 "Ebdim/C [x x 1 2 1 2] (C Eb Gb A) "
#define STRING_22588 "Ebdim7 [x x 1 2 1 2] (C Eb Gb A) "
#define STRING_22589 "Ebm [x x 4 3 4 2] (Eb Gb Bb) "
#define STRING_22590 "Ebm/Db [x x 1 3 2 2] (Db Eb Gb Bb) "
#define STRING_22591 "Ebm7 [x x 1 3 2 2] (Db Eb Gb Bb) "
#define STRING_22592 "Ebmaj7 or Eb#7 [x 6 8 7 8 6] (D Eb G Bb) "
#define STRING_22593 "Ebsus2/Ab [x 1 3 1 4 1] (Eb F Ab Bb) "
#define STRING_22594 "Ebsus4/F [x 1 3 1 4 1] (Eb F Ab Bb) "
#define STRING_22595 "Edim/C [x 3 5 3 5 3] (C E G Bb) "
#define STRING_22596 "Edim/D [3 x 0 3 3 0] (D E G Bb) "
#define STRING_22597 "Edim/Db [x 1 2 0 2 0] (Db E G Bb) "
#define STRING_22598 "Edim/Db [x x 2 3 2 3] (Db E G Bb) "
#define STRING_22599 "Edim/Eb [x x 5 3 4 0] (Eb E G Bb) "
#define STRING_22600 "Edim7 [x 1 2 0 2 0] (Db E G Bb) "
#define STRING_22601 "Edim7 [x x 2 3 2 3] (Db E G Bb) "
#define STRING_22602 "Em [0 2 2 0 0 0] (E G B) "
#define STRING_22603 "Em [3 x 2 0 0 0] (E G B) "
#define STRING_22604 "Em [x 2 5 x x 0] (E G B) "
#define STRING_22605 "Em/A [3 x 2 2 0 0] (E G A B) "
#define STRING_22606 "Em/A [x 0 2 0 0 0] (E G A B) "
#define STRING_22607 "Em/A [x 0 5 4 5 0] (E G A B) "
#define STRING_22608 "Em/C [0 3 2 0 0 0] (C E G B) "
#define STRING_22609 "Em/C [x 2 2 0 1 0] (C E G B) "
#define STRING_22610 "Em/C [x 3 5 4 5 3] (C E G B) "
#define STRING_22611 "Em/D [0 2 0 0 0 0] (D E G B) "
#define STRING_22612 "Em/D [0 2 0 0 3 0] (D E G B) "
#define STRING_22613 "Em/D [0 2 2 0 3 0] (D E G B) "
#define STRING_22614 "Em/D [0 2 2 0 3 3] (D E G B) "
#define STRING_22615 "Em/D [x x 0 12 12 12] (D E G B) "
#define STRING_22616 "Em/D [x x 0 9 8 7] (D E G B) "
#define STRING_22617 "Em/D [x x 2 4 3 3] (D E G B) "
#define STRING_22618 "Em/D [0 x 0 0 0 0] (D E G B) "
#define STRING_22619 "Em/D [x 10 12 12 12 0] (D E G B) "
#define STRING_22620 "Em/Db [0 2 2 0 2 0] (Db E G B) "
#define STRING_22621 "Em/Eb [3 x 1 0 0 0] (Eb E G B) "
#define STRING_22622 "Em/Eb [x x 1 0 0 0] (Eb E G B) "
#define STRING_22623 "Em/Gb [0 2 2 0 0 2] (E Gb G B) "
#define STRING_22624 "Em/Gb [0 2 4 0 0 0] (E Gb G B) "
#define STRING_22625 "Em/Gb [0 x 4 0 0 0] (E Gb G B) "
#define STRING_22626 "Em/Gb [2 2 2 0 0 0] (E Gb G B) "
#define STRING_22627 "Em6 [0 2 2 0 2 0] (Db E G B) "
#define STRING_22628 "Em6 [12 x 11 12 12 12] (E Db G B E) "
#define STRING_22629 "Em7 [0 2 0 0 0 0] (D E G B) "
#define STRING_22630 "Em7 [0 2 0 0 3 0] (D E G B) "
#define STRING_22631 "Em7 [0 2 2 0 3 0] (D E G B) "
#define STRING_22632 "Em7 [0 2 2 0 3 3] (D E G B) "
#define STRING_22633 "Em7 [x x 0 0 0 0] (D E G B) "
#define STRING_22634 "Em7 [x x 0 12 12 12] (D E G B) "
#define STRING_22635 "Em7 [x x 0 9 8 7] (D E G B) "
#define STRING_22636 "Em7 [x x 2 4 3 3] (D E G B) "
#define STRING_22637 "Em7 [0 x 0 0 0 0] (D E G B) "
#define STRING_22638 "Em7 [x 10 12 12 12 0] (D E G B) "
#define STRING_22639 "Em7(b5) or Eo7 [3 x 0 3 3 0] (D E G Bb) "
#define STRING_22640 "Em7/add11 or Em7/11 [0 0 0 0 0 0] (D E G A B) "
#define STRING_22641 "Em7/add11 or Em7/11 [0 0 0 0 0 3] (D E G A B) "
#define STRING_22642 "Em7/add11 or Em7/11 [3 x 0 2 0 0] (D E G A B) "
#define STRING_22643 "Em9 [0 2 0 0 0 2] (D E Gb G B) "
#define STRING_22644 "Em9 [0 2 0 0 3 2] (D E Gb G B) "
#define STRING_22645 "Em9 [2 2 0 0 0 0] (D E Gb G B) "
#define STRING_22646 "Emaj7 or E#7 [0 2 1 1 0 0] (Eb E Ab B) "
#define STRING_22647 "Emaj7 or E#7 [0 x 6 4 4 0] (Eb E Ab B) "
#define STRING_22648 "Emaj7 or E#7 [x x 1 1 0 0] (Eb E Ab B) "
#define STRING_22649 "Emaj9 or E9(#7) [0 2 1 1 0 2] (Eb E Gb Ab B) "
#define STRING_22650 "Emaj9 or E9(#7) [4 x 4 4 4 0] (Eb E Gb Ab B) "
#define STRING_22651 "Emin/maj7 [3 x 1 0 0 0] (Eb E G B) "
#define STRING_22652 "Emin/maj7 [x x 1 0 0 0] (Eb E G B) "
#define STRING_22653 "Emin/maj9 [0 6 4 0 0 0] (Eb E Gb G B) "
#define STRING_22654 "Esus or Esus4 [0 0 2 2 0 0] (E A B) "
#define STRING_22655 "Esus or Esus4 [0 0 2 4 0 0] (E A B) "
#define STRING_22656 "Esus or Esus4 [0 2 2 2 0 0] (E A B) "
#define STRING_22657 "Esus or Esus4 [x 0 2 2 0 0] (E A B) "
#define STRING_22658 "Esus or Esus4 [x x 2 2 0 0] (E A B) "
#define STRING_22659 "Esus2 or Eadd9(no3)[7 9 9 x x 0] (E Gb B)"
#define STRING_22660 "Esus2 or Eadd9(no3)[x 2 4 4 x 0] (E Gb B)"
#define STRING_22661 "Esus2/A [x 0 4 4 0 0] (E Gb A B) "
#define STRING_22662 "Esus2/A [x 2 4 2 5 2] (E Gb A B) "
#define STRING_22663 "Esus2/Ab [0 2 2 1 0 2] (E Gb Ab B) "
#define STRING_22664 "Esus2/Ab [0 x 4 1 0 0] (E Gb Ab B) "
#define STRING_22665 "Esus2/Ab [2 2 2 1 0 0] (E Gb Ab B) "
#define STRING_22666 "Esus2/Db [x 4 4 4 x 0] (Db E Gb B) "
#define STRING_22667 "Esus2/Eb [x 2 2 4 4 2] (Eb E Gb B) "
#define STRING_22668 "Esus2/Eb [x x 4 4 4 0] (Eb E Gb B) "
#define STRING_22669 "Esus2/G [0 2 2 0 0 2] (E Gb G B) "
#define STRING_22670 "Esus2/G [0 2 4 0 0 0] (E Gb G B) "
#define STRING_22671 "Esus2/G [0 x 4 0 0 0] (E Gb G B) "
#define STRING_22672 "Esus2/G [2 2 2 0 0 0] (E Gb G B) "
#define STRING_22673 "Esus4/Ab [x 0 2 1 0 0] (E Ab A B) "
#define STRING_22674 "Esus4/C [0 0 7 5 0 0] (C E A B) "
#define STRING_22675 "Esus4/C [x 3 2 2 0 0] (C E A B) "
#define STRING_22676 "Esus4/D [0 2 0 2 0 0] (D E A B) "
#define STRING_22677 "Esus4/D [x 2 0 2 3 0] (D E A B) "
#define STRING_22678 "Esus4/Db [0 0 2 4 2 0] (Db E A B) "
#define STRING_22679 "Esus4/Db [x 0 7 6 0 0] (Db E A B) "
#define STRING_22680 "Esus4/Eb [x 2 1 2 0 0] (Eb E A B) "
#define STRING_22681 "Esus4/F [0 0 3 2 0 0] (E F A B) "
#define STRING_22682 "Esus4/G [x 0 2 0 0 0] (E G A B) "
#define STRING_22683 "Esus4/G [x 0 5 4 5 0] (E G A B) "
#define STRING_22684 "Esus4/Gb [x 0 4 4 0 0] (E Gb A B) "
#define STRING_22685 "Esus4/Gb [x 2 4 2 5 2] (E Gb A B) "
#define STRING_22686 "F or Fmaj [1 3 3 2 1 1] (C F A) "
#define STRING_22687 "F or Fmaj [x 0 3 2 1 1] (C F A) "
#define STRING_22688 "F or Fmaj [x 3 3 2 1 1] (C F A) "
#define STRING_22689 "F or Fmaj [x x 3 2 1 1] (C F A) "
#define STRING_22690 "F #5 or Faug [x 0 3 2 2 1] (Db F A) "
#define STRING_22691 "F #5 or Faug [x 0 x 2 2 1] (Db F A) "
#define STRING_22692 "F/D [x 5 7 5 6 5] (C D F A) "
#define STRING_22693 "F/D [x x 0 2 1 1] (C D F A) "
#define STRING_22694 "F/D [x x 0 5 6 5] (C D F A) "
#define STRING_22695 "F/E [0 0 3 2 1 0] (C E F A) "
#define STRING_22696 "F/E [1 3 3 2 1 0] (C E F A) "
#define STRING_22697 "F/E [1 x 2 2 1 0] (C E F A) "
#define STRING_22698 "F/E [x x 2 2 1 1] (C E F A) "
#define STRING_22699 "F/E [x x 3 2 1 0] (C E F A) "
#define STRING_22700 "F/Eb [x x 1 2 1 1] (C Eb F A) "
#define STRING_22701 "F/Eb [x x 3 5 4 5] (C Eb F A) "
#define STRING_22702 "F/G [3 x 3 2 1 1] (C F G A) "
#define STRING_22703 "F/G [x x 3 2 1 3] (C F G A) "
#define STRING_22704 "F5 or F(no 3rd) [1 3 3 x x 1] (C F)"
#define STRING_22705 "F5 or F(no 3rd) [x 8 10 x x 1] (C F)"
#define STRING_22706 "F6 [x 5 7 5 6 5] (C D F A) "
#define STRING_22707 "F6 [x x 0 2 1 1] (C D F A) "
#define STRING_22708 "F6 [x x 0 5 6 5] (C D F A) "
#define STRING_22709 "F6/add9 or F6/9 [3 x 0 2 1 1] (C D F G A) "
#define STRING_22710 "F7 or Fdom 7 [x x 1 2 1 1] (C Eb F A) "
#define STRING_22711 "F7 or Fdom 7 [x x 3 5 4 5] (C Eb F A) "
#define STRING_22712 "Fadd9 or F2 [3 x 3 2 1 1] (C F G A) "
#define STRING_22713 "Fadd9 or F2 [x x 3 2 1 3] (C F G A) "
#define STRING_22714 "Faug/D [x x 0 2 2 1] (Db D F A) "
#define STRING_22715 "Faug/G [1 0 3 0 2 1] (Db F G A) "
#define STRING_22716 "Fdim/D [x 2 0 1 0 1] (D F Ab B) "
#define STRING_22717 "Fdim/D [x x 0 1 0 1] (D F Ab B) "
#define STRING_22718 "Fdim/D [x x 3 4 3 4] (D F Ab B) "
#define STRING_22719 "Fdim/Db [x 4 3 4 0 4] (Db F Ab B) "
#define STRING_22720 "Fdim7 [x 2 0 1 0 1] (D F Ab B) "
#define STRING_22721 "Fdim7 [x x 0 1 0 1] (D F Ab B) "
#define STRING_22722 "Fdim7 [x x 3 4 3 4] (D F Ab B) "
#define STRING_22723 "Fm [x 3 3 1 1 1] (C F Ab) "
#define STRING_22724 "Fm [x x 3 1 1 1] (C F Ab) "
#define STRING_22725 "Fm/D [x x 0 1 1 1] (C D F Ab) "
#define STRING_22726 "Fm/Db [x 3 3 1 2 1] (C Db F Ab) "
#define STRING_22727 "Fm/Db [x 4 6 5 6 4] (C Db F Ab) "
#define STRING_22728 "Fm/Eb [x 8 10 8 9 8] (C Eb F Ab) "
#define STRING_22729 "Fm/Eb [x x 1 1 1 1] (C Eb F Ab) "
#define STRING_22730 "Fm6 [x x 0 1 1 1] (C D F Ab) "
#define STRING_22731 "Fm6 [1 x 0 1 1 1] (F D Ab C F) "
#define STRING_22732 "Fm7 [x 8 10 8 9 8] (C Eb F Ab) "
#define STRING_22733 "Fm7 [x x 1 1 1 1] (C Eb F Ab) "
#define STRING_22734 "Fmaj7 or F#7 [0 0 3 2 1 0] (C E F A) "
#define STRING_22735 "Fmaj7 or F#7 [1 3 3 2 1 0] (C E F A) "
#define STRING_22736 "Fmaj7 or F#7 [1 x 2 2 1 0] (C E F A) "
#define STRING_22737 "Fmaj7 or F#7 [x x 2 2 1 1] (C E F A) "
#define STRING_22738 "Fmaj7 or F#7 [x x 3 2 1 0] (C E F A) "
#define STRING_22739 "Fmaj7/#11 [0 2 3 2 1 0] (C E F A B) "
#define STRING_22740 "Fmaj7/#11 [1 3 3 2 0 0] (C E F A B) "
#define STRING_22741 "Fmaj9 or F9(#7) [0 0 3 0 1 3] (C E F G A) "
#define STRING_22742 "Fsus or Fsus4 [x x 3 3 1 1] (C F Bb) "
#define STRING_22743 "Fsus2 or Fadd9(no3)[x 3 3 0 1 1] (C F G) "
#define STRING_22744 "Fsus2 or Fadd9(no3)[x x 3 0 1 1] (C F G) "
#define STRING_22745 "Fsus2/A [3 x 3 2 1 1] (C F G A) "
#define STRING_22746 "Fsus2/A [x x 3 2 1 3] (C F G A) "
#define STRING_22747 "Fsus2/B [x 3 3 0 0 3] (C F G B) "
#define STRING_22748 "Fsus2/Bb [x 3 5 3 6 3] (C F G Bb) "
#define STRING_22749 "Fsus2/D [3 3 0 0 1 1] (C D F G) "
#define STRING_22750 "Fsus2/E [x 3 3 0 1 0] (C E F G) "
#define STRING_22751 "Fsus2/E [x x 3 0 1 0] (C E F G) "
#define STRING_22752 "Fsus4/G [x 3 5 3 6 3] (C F G Bb) "
#define STRING_22753 "G or Gmaj [x 10 12 12 12 10] (D G B)"
#define STRING_22754 "G or Gmaj [3 2 0 0 0 3] (D G B) "
#define STRING_22755 "G or Gmaj [3 2 0 0 3 3] (D G B) "
#define STRING_22756 "G or Gmaj [3 5 5 4 3 3] (D G B) "
#define STRING_22757 "G or Gmaj [3 x 0 0 0 3] (D G B) "
#define STRING_22758 "G or Gmaj [x 5 5 4 3 3] (D G B) "
#define STRING_22759 "G or Gmaj [x x 0 4 3 3] (D G B) "
#define STRING_22760 "G or Gmaj [x x 0 7 8 7] (D G B) "
#define STRING_22761 "G #5 or Gaug [3 2 1 0 0 3] (Eb G B) "
#define STRING_22762 "G #5 or Gaug [3 x 1 0 0 3] (Eb G B) "
#define STRING_22763 "G/A [3 0 0 0 0 3] (D G A B) "
#define STRING_22764 "G/A [3 2 0 2 0 3] (D G A B) "
#define STRING_22765 "G/C [3 3 0 0 0 3] (C D G B) "
#define STRING_22766 "G/C [x 3 0 0 0 3] (C D G B) "
#define STRING_22767 "G/E [0 2 0 0 0 0] (D E G B) "
#define STRING_22768 "G/E [0 2 0 0 3 0] (D E G B) "
#define STRING_22769 "G/E [0 2 2 0 3 0] (D E G B) "
#define STRING_22770 "G/E [0 2 2 0 3 3] (D E G B) "
#define STRING_22771 "G/E [x x 0 12 12 12] (D E G B) "
#define STRING_22772 "G/E [x x 0 9 8 7] (D E G B) "
#define STRING_22773 "G/E [x x 2 4 3 3] (D E G B) "
#define STRING_22774 "G/E [0 x 0 0 0 0] (D E G B) "
#define STRING_22775 "G/E [x 10 12 12 12 0] (D E G B) "
#define STRING_22776 "G/F [1 x 0 0 0 3] (D F G B) "
#define STRING_22777 "G/F [3 2 0 0 0 1] (D F G B) "
#define STRING_22778 "G/F [x x 0 0 0 1] (D F G B) "
#define STRING_22779 "G/Gb [2 2 0 0 0 3] (D Gb G B) "
#define STRING_22780 "G/Gb [2 2 0 0 3 3] (D Gb G B) "
#define STRING_22781 "G/Gb [3 2 0 0 0 2] (D Gb G B) "
#define STRING_22782 "G/Gb [x x 4 4 3 3] (D Gb G B) "
#define STRING_22783 "G5 or G(no 3rd) [3 5 5 x x 3] (D G)"
#define STRING_22784 "G5 or G(no 3rd) [3 x 0 0 3 3] (D G) "
#define STRING_22785 "G6 [0 2 0 0 0 0] (D E G B) "
#define STRING_22786 "G6 [0 2 0 0 3 0] (D E G B) "
#define STRING_22787 "G6 [0 2 2 0 3 0] (D E G B) "
#define STRING_22788 "G6 [0 2 2 0 3 3] (D E G B) "
#define STRING_22789 "G6 [x x 0 12 12 12] (D E G B) "
#define STRING_22790 "G6 [x x 0 9 8 7] (D E G B) "
#define STRING_22791 "G6 [x x 2 4 3 3] (D E G B) "
#define STRING_22792 "G6 [0 x 0 0 0 0] (D E G B) "
#define STRING_22793 "G6 [x 10 12 12 12 0] (D E G B) "
#define STRING_22794 "G6/add9 or G6/9 [0 0 0 0 0 0] (D E G A B) "
#define STRING_22795 "G6/add9 or G6/9 [0 0 0 0 0 3] (D E G A B) "
#define STRING_22796 "G6/add9 or G6/9 [3 x 0 2 0 0] (D E G A B) "
#define STRING_22797 "G7 or Gdom 7 [1 x 0 0 0 3] (D F G B) "
#define STRING_22798 "G7 or Gdom 7 [3 2 0 0 0 1] (D F G B) "
#define STRING_22799 "G7 or Gdom 7 [x x 0 0 0 1] (D F G B) "
#define STRING_22800 "G7/add11 or G7/11 [x 3 0 0 0 1] (C D F G B) "
#define STRING_22801 "G7sus4 [3 3 0 0 1 1] (C D F G) "
#define STRING_22802 "G9 or Gdom 9 [x 0 0 0 0 1] (D F G A B) "
#define STRING_22803 "G9 or Gdom 9 [x 2 3 2 3 3] (D F G A B) "
#define STRING_22804 "Gadd9 or G2 [3 0 0 0 0 3] (D G A B) "
#define STRING_22805 "Gadd9 or G2 [3 2 0 2 0 3] (D G A B) "
#define STRING_22806 "Gaug/E [3 x 1 0 0 0] (Eb E G B) "
#define STRING_22807 "Gaug/E [x x 1 0 0 0] (Eb E G B) "
#define STRING_22808 "Gb or Gbmaj [2 4 4 3 2 2] (Db Gb Bb) "
#define STRING_22809 "Gb or Gbmaj [x 4 4 3 2 2] (Db Gb Bb) "
#define STRING_22810 "Gb or Gbmaj [x x 4 3 2 2] (Db Gb Bb) "
#define STRING_22811 "Gb #5 or Gbaug [x x 0 3 3 2] (D Gb Bb) "
#define STRING_22812 "Gb/Ab [x x 4 3 2 4] (Db Gb Ab Bb) "
#define STRING_22813 "Gb/E [2 4 2 3 2 2] (Db E Gb Bb) "
#define STRING_22814 "Gb/E [x x 4 3 2 0] (Db E Gb Bb) "
#define STRING_22815 "Gb/Eb [x x 1 3 2 2] (Db Eb Gb Bb) "
#define STRING_22816 "Gb/F [x x 3 3 2 2] (Db F Gb Bb) "
#define STRING_22817 "Gb6 [x x 1 3 2 2] (Db Eb Gb Bb) "
#define STRING_22818 "Gb7 or Gbdom 7 [2 4 2 3 2 2] (Db E Gb Bb) "
#define STRING_22819 "Gb7 or Gbdom 7 [x x 4 3 2 0] (Db E Gb Bb) "
#define STRING_22820 "Gb7(#5) [2 x 4 3 3 0] (D E Gb Bb) "
#define STRING_22821 "Gb7/#9 [x 0 4 3 2 0] (Db E Gb A Bb) "
#define STRING_22822 "Gb7sus4 [x 4 4 4 x 0] (Db E Gb B) "
#define STRING_22823 "Gbadd9 or Gb2 [x x 4 3 2 4] (Db Gb Ab Bb) "
#define STRING_22824 "Gbaug/E [2 x 4 3 3 0] (D E Gb Bb) "
#define STRING_22825 "Gbdim/D [x 5 7 5 7 2] (C D Gb A)"
#define STRING_22826 "Gbdim/D [x 0 0 2 1 2] (C D Gb A) "
#define STRING_22827 "Gbdim/D [x 3 x 2 3 2] (C D Gb A) "
#define STRING_22828 "Gbdim/D [x 5 7 5 7 5] (C D Gb A) "
#define STRING_22829 "Gbdim/E [x 0 2 2 1 2] (C E Gb A) "
#define STRING_22830 "Gbdim/E [x x 2 2 1 2] (C E Gb A) "
#define STRING_22831 "Gbdim/Eb [x x 1 2 1 2] (C Eb Gb A) "
#define STRING_22832 "Gbdim7 [x x 1 2 1 2] (C Eb Gb A) "
#define STRING_22833 "Gbm [2 4 4 2 2 2] (Db Gb A) "
#define STRING_22834 "Gbm [x 4 4 2 2 2] (Db Gb A) "
#define STRING_22835 "Gbm [x x 4 2 2 2] (Db Gb A) "
#define STRING_22836 "Gbm/D [x x 0 14 14 14] (Db D Gb A) "
#define STRING_22837 "Gbm/D [x x 0 2 2 2] (Db D Gb A) "
#define STRING_22838 "Gbm/E [0 0 2 2 2 2] (Db E Gb A) "
#define STRING_22839 "Gbm/E [0 x 4 2 2 0] (Db E Gb A) "
#define STRING_22840 "Gbm/E [2 x 2 2 2 0] (Db E Gb A) "
#define STRING_22841 "Gbm/E [x 0 4 2 2 0] (Db E Gb A) "
#define STRING_22842 "Gbm/E [x x 2 2 2 2] (Db E Gb A) "
#define STRING_22843 "Gbm7 [0 0 2 2 2 2] (Db E Gb A) "
#define STRING_22844 "Gbm7 [0 x 4 2 2 0] (Db E Gb A) "
#define STRING_22845 "Gbm7 [2 x 2 2 2 0] (Db E Gb A) "
#define STRING_22846 "Gbm7 [x 0 4 2 2 0] (Db E Gb A) "
#define STRING_22847 "Gbm7 [x x 2 2 2 2] (Db E Gb A) "
#define STRING_22848 "Gbm7(b5) or Gbo7 [x 0 2 2 1 2] (C E Gb A) "
#define STRING_22849 "Gbm7(b5) or Gbo7 [x x 2 2 1 2] (C E Gb A) "
#define STRING_22850 "Gbm7/b9 [0 0 2 0 2 2] (Db E Gb G A) "
#define STRING_22851 "Gbmaj7 or Gb#7 [x x 3 3 2 2] (Db F Gb Bb) "
#define STRING_22852 "Gbsus or Gbsus4 [x 4 4 4 2 2] (Db Gb B) "
#define STRING_22853 "Gbsus2/Bb [x x 4 3 2 4] (Db Gb Ab Bb) "
#define STRING_22854 "Gbsus4/E [x 4 4 4 x 0] (Db E Gb B) "
#define STRING_22855 "Gdim/E [x 1 2 0 2 0] (Db E G Bb) "
#define STRING_22856 "Gdim/E [x x 2 3 2 3] (Db E G Bb) "
#define STRING_22857 "Gdim/Eb [x 1 1 3 2 3] (Db Eb G Bb) "
#define STRING_22858 "Gdim/Eb [x 6 8 6 8 6] (Db Eb G Bb) "
#define STRING_22859 "Gdim/Eb [x x 1 3 2 3] (Db Eb G Bb) "
#define STRING_22860 "Gdim7 [x 1 2 0 2 0] (Db E G Bb) "
#define STRING_22861 "Gdim7 [x x 2 3 2 3] (Db E G Bb) "
#define STRING_22862 "Gm [3 5 5 3 3 3] (D G Bb) "
#define STRING_22863 "Gm [x x 0 3 3 3] (D G Bb) "
#define STRING_22864 "Gm/E [3 x 0 3 3 0] (D E G Bb) "
#define STRING_22865 "Gm/Eb [x 6 8 7 8 6] (D Eb G Bb) "
#define STRING_22866 "Gm/F [3 5 3 3 3 3] (D F G Bb) "
#define STRING_22867 "Gm/F [x x 3 3 3 3] (D F G Bb) "
#define STRING_22868 "Gm13 [0 0 3 3 3 3] (D E F G A Bb) "
#define STRING_22869 "Gm6 [3 x 0 3 3 0] (D E G Bb) "
#define STRING_22870 "Gm6 [3 x 2 3 3 3] (G E Bb D G) "
#define STRING_22871 "Gm7 [3 5 3 3 3 3] (D F G Bb) "
#define STRING_22872 "Gm7 [x x 3 3 3 3] (D F G Bb) "
#define STRING_22873 "Gm7/add11 or Gm7/11 [x 3 3 3 3 3] (C D F G Bb) "
#define STRING_22874 "Gm9 [3 5 3 3 3 5] (D F G A Bb) "
#define STRING_22875 "Gmaj7 or G#7 [2 2 0 0 0 3] (D Gb G B) "
#define STRING_22876 "Gmaj7 or G#7 [2 2 0 0 3 3] (D Gb G B) "
#define STRING_22877 "Gmaj7 or G#7 [3 2 0 0 0 2] (D Gb G B) "
#define STRING_22878 "Gmaj7 or G#7 [x x 4 4 3 3] (D Gb G B) "
#define STRING_22879 "Gsus or Gsus4 [x 10 12 12 13 3] (C D G)"
#define STRING_22880 "Gsus or Gsus4 [x 3 0 0 3 3] (C D G) "
#define STRING_22881 "Gsus or Gsus4 [x 3 5 5 3 3] (C D G) "
#define STRING_22882 "Gsus or Gsus4 [x 5 5 5 3 3] (C D G) "
#define STRING_22883 "Gsus2 or Gadd9(no3)[5 x 0 0 3 5] (D G A)"
#define STRING_22884 "Gsus2 or Gadd9(no3)[3 0 0 0 3 3] (D G A) "
#define STRING_22885 "Gsus2 or Gadd9(no3)[x 0 0 0 3 3] (D G A) "
#define STRING_22886 "Gsus2 or Gadd9(no3)[x x 0 2 3 3] (D G A) "
#define STRING_22887 "Gsus2/B [3 0 0 0 0 3] (D G A B) "
#define STRING_22888 "Gsus2/B [3 2 0 2 0 3] (D G A B) "
#define STRING_22889 "Gsus2/C [x 5 7 5 8 3] (C D G A)"
#define STRING_22890 "Gsus2/C [x x 0 2 1 3] (C D G A) "
#define STRING_22891 "Gsus2/E [x 0 2 0 3 0] (D E G A) "
#define STRING_22892 "Gsus2/E [x 0 2 0 3 3] (D E G A) "
#define STRING_22893 "Gsus2/E [x 0 2 2 3 3] (D E G A) "
#define STRING_22894 "Gsus2/E [5 0 0 0 3 0] (D E G A) "
#define STRING_22895 "Gsus2/Gb [5 x 4 0 3 5] (D Gb G A)"
#define STRING_22896 "Gsus2/Gb [3 x 0 2 3 2] (D Gb G A) "
#define STRING_22897 "Gsus4/A [x 5 7 5 8 3] (C D G A)"
#define STRING_22898 "Gsus4/A [x x 0 2 1 3] (C D G A) "
#define STRING_22899 "Gsus4/B [3 3 0 0 0 3] (C D G B) "
#define STRING_22900 "Gsus4/B [x 3 0 0 0 3] (C D G B) "
#define STRING_22901 "Gsus4/E [3 x 0 0 1 0] (C D E G) "
#define STRING_22902 "Gsus4/E [x 3 0 0 1 0] (C D E G) "
#define STRING_22903 "Gsus4/E [x 3 2 0 3 0] (C D E G) "
#define STRING_22904 "Gsus4/E [x 3 2 0 3 3] (C D E G) "
#define STRING_22905 "Gsus4/E [x x 0 0 1 0] (C D E G) "
#define STRING_22906 "Gsus4/E [x x 0 5 5 3] (C D E G) "
#define STRING_22907 "Gsus4/E [x 10 12 12 13 0] (C D E G) "
#define STRING_22908 "Gsus4/E [x 5 5 5 x 0] (C D E G) "
#define STRING_22909 "Gsus4/F [3 3 0 0 1 1] (C D F G) "

1137
proto/Debug/strings.txt Normal file

File diff suppressed because it is too large Load Diff

BIN
proto/Debug/sysinfo.exe Normal file

Binary file not shown.

105
proto/Debug/table.txt Normal file
View File

@@ -0,0 +1,105 @@
1 trade_date smalldatetime 4 0
0 trade_date_txt varchar 10 1
0 portfolio varchar 35 0
0 sub_portfolio varchar 35 0
0 ticker varchar 25 0
0 ticker_desc varchar 60 1
0 uticker varchar 25 1
0 instrument varchar 3 0
0 mkt_cap decimal 13 1
0 wgt_ave decimal 9 1
0 volume decimal 13 1
0 contract_size decimal 9 1
0 hedge_index varchar 4 1
0 hedge_sector varchar 4 1
0 area varchar 6 1
0 area_sector varchar 6 1
0 [close] decimal 9 1
0 y_close decimal 9 1
0 uticker_close decimal 9 1
0 y_uticker_close decimal 9 1
0 delta decimal 9 1
0 y_delta decimal 9 1
0 days_expire int 4 1
0 strike_price decimal 9 1
0 hedge_beta decimal 5 1
0 area_beta decimal 5 1
0 sector_beta decimal 5 1
0 group_beta decimal 5 1
0 qty decimal 9 0
0 y_qty decimal 9 0
0 qty_change decimal 9 1
0 hedge_close decimal 9 1
0 hedge_perc decimal 9 1
0 area_close decimal 9 1
0 area_perc decimal 9 1
0 sector_close decimal 9 1
0 sector_perc decimal 9 1
0 mkt_value decimal 13 1
0 y_mkt_value decimal 13 1
0 pnl decimal 13 1
0 exposure decimal 13 1
0 y_exposure decimal 13 1
0 hb_exposure decimal 13 1
0 y_hb_exposure decimal 13 1
0 ab_exposure decimal 13 1
0 y_ab_exposure decimal 13 1
0 sb_exposure decimal 13 1
0 y_sb_exposure decimal 13 1
0 area_pnl_amt decimal 13 1
0 sector_pnl_amt decimal 13 1
0 pnl_perc decimal 13 1
0 price_change decimal 13 1
0 price_change_perc decimal 13 1
0 price_change_amt decimal 13 1
0 sector_alpha_perc decimal 13 1
0 group_alpha_perc decimal 13 1
0 area_alpha_perc decimal 13 1
0 sector_alpha_amt decimal 13 1
0 group_alpha_amt decimal 13 1
0 area_alpha_amt decimal 13 1
0 ab_return_amt decimal 13 1
0 ab_return_perc decimal 13 1
0 intraday_perc decimal 13 1
0 intraday_amt decimal 13 1
0 optionality_amt decimal 13 1
0 optionality_perc decimal 13 1
0 currency varchar 5 1
0 base_close decimal 9 1
0 y_base_close decimal 9 1
0 fx_perc decimal 9 1
0 fx_amt decimal 9 1
0 fx_rate decimal 9 1
0 y_fx_rate decimal 9 1
0 alt_index_return_perc decimal 13 1
0 alt_index_return_amt decimal 13 1
0 index_beta_adj_perc decimal 13 1
0 index_beta_adj_amt decimal 13 1
0 vwap decimal 13 1
0 vwap_pnl decimal 13 1
0 hedge_alpha_amt decimal 13 1
0 exposure_view varchar 5 1
0 market_view varchar 5 1
0 call_put varchar 4 1
0 [month] varchar 4 1
0 private bit 1 1
0 ipo bit 1 1
0 ratio decimal 9 1
0 source varchar 10 1
0 go_around smalldatetime 4 1
0 adh decimal 13 1
0 aac decimal 13 1
0 azap float 8 1
0 exported bit 1 1
0 hedge_alpha_perc decimal 13 1
0 alpha_go_around decimal 13 1
0 alpha_real decimal 13 1
0 alpha_unreal decimal 13 1
0 pnl_real decimal 13 1
0 pnl_unreal decimal 13 1
0 cash_flow decimal 13 1
0 beta_cash_flow decimal 13 1
0 last_trade_date smalldatetime 4 1
0 last_trade_qty decimal 9 1
0 enterprise_value decimal 13 1
0 associate nvarchar 30 1

BIN
proto/Debug/vc60.idb Normal file

Binary file not shown.

BIN
proto/Debug/vc60.pdb Normal file

Binary file not shown.

951
proto/Historic.java Normal file
View File

@@ -0,0 +1,951 @@
package zbi.risk.server.vhi.mapped
public class Historic
{
private Timestamp tradeDate;
private String tradeDateTxt;
private String portfolio;
private String subPortfolio;
private String ticker;
private String tickerDesc;
private String uticker;
private String instrument;
private float mktCap;
private float wgtAve;
private float volume;
private float contractSize;
private String hedgeIndex;
private String hedgeSector;
private String area;
private String areaSector;
private float [close];
private float yClose;
private float utickerClose;
private float yUtickerClose;
private float delta;
private float yDelta;
private int daysExpire;
private float strikePrice;
private float hedgeBeta;
private float areaBeta;
private float sectorBeta;
private float groupBeta;
private float qty;
private float yQty;
private float qtyChange;
private float hedgeClose;
private float hedgePerc;
private float areaClose;
private float areaPerc;
private float sectorClose;
private float sectorPerc;
private float mktValue;
private float yMktValue;
private float pnl;
private float exposure;
private float yExposure;
private float hbExposure;
private float yHbExposure;
private float abExposure;
private float yAbExposure;
private float sbExposure;
private float ySbExposure;
private float areaPnlAmt;
private float sectorPnlAmt;
private float pnlPerc;
private float priceChange;
private float priceChangePerc;
private float priceChangeAmt;
private float sectorAlphaPerc;
private float groupAlphaPerc;
private float areaAlphaPerc;
private float sectorAlphaAmt;
private float groupAlphaAmt;
private float areaAlphaAmt;
private float abReturnAmt;
private float abReturnPerc;
private float intradayPerc;
private float intradayAmt;
private float optionalityAmt;
private float optionalityPerc;
private String currency;
private float baseClose;
private float yBaseClose;
private float fxPerc;
private float fxAmt;
private float fxRate;
private float yFxRate;
private float altIndexReturnPerc;
private float altIndexReturnAmt;
private float indexBetaAdjPerc;
private float indexBetaAdjAmt;
private float vwap;
private float vwapPnl;
private float hedgeAlphaAmt;
private String exposureView;
private String marketView;
private String callPut;
private String [month];
private boolean private;
private boolean ipo;
private float ratio;
private String source;
private Timestamp goAround;
private float adh;
private float aac;
private float azap;
private boolean exported;
private float hedgeAlphaPerc;
private float alphaGoAround;
private float alphaReal;
private float alphaUnreal;
private float pnlReal;
private float pnlUnreal;
private float cashFlow;
private float betaCashFlow;
private Timestamp lastTradeDate;
private float lastTradeQty;
private float enterpriseValue;
private String associate;
public Timestamp getTradeDate()
{
return tradeDate;
}
public void setTradeDate(Timestamp tradeDate)
{
this.tradeDate=tradeDate;
}
public String getTradeDateTxt()
{
return tradeDateTxt;
}
public void setTradeDateTxt(String tradeDateTxt)
{
this.tradeDateTxt=tradeDateTxt;
}
public String getPortfolio()
{
return portfolio;
}
public void setPortfolio(String portfolio)
{
this.portfolio=portfolio;
}
public String getSubPortfolio()
{
return subPortfolio;
}
public void setSubPortfolio(String subPortfolio)
{
this.subPortfolio=subPortfolio;
}
public String getTicker()
{
return ticker;
}
public void setTicker(String ticker)
{
this.ticker=ticker;
}
public String getTickerDesc()
{
return tickerDesc;
}
public void setTickerDesc(String tickerDesc)
{
this.tickerDesc=tickerDesc;
}
public String getUticker()
{
return uticker;
}
public void setUticker(String uticker)
{
this.uticker=uticker;
}
public String getInstrument()
{
return instrument;
}
public void setInstrument(String instrument)
{
this.instrument=instrument;
}
public float getMktCap()
{
return mktCap;
}
public void setMktCap(float mktCap)
{
this.mktCap=mktCap;
}
public float getWgtAve()
{
return wgtAve;
}
public void setWgtAve(float wgtAve)
{
this.wgtAve=wgtAve;
}
public float getVolume()
{
return volume;
}
public void setVolume(float volume)
{
this.volume=volume;
}
public float getContractSize()
{
return contractSize;
}
public void setContractSize(float contractSize)
{
this.contractSize=contractSize;
}
public String getHedgeIndex()
{
return hedgeIndex;
}
public void setHedgeIndex(String hedgeIndex)
{
this.hedgeIndex=hedgeIndex;
}
public String getHedgeSector()
{
return hedgeSector;
}
public void setHedgeSector(String hedgeSector)
{
this.hedgeSector=hedgeSector;
}
public String getArea()
{
return area;
}
public void setArea(String area)
{
this.area=area;
}
public String getAreaSector()
{
return areaSector;
}
public void setAreaSector(String areaSector)
{
this.areaSector=areaSector;
}
public float get[close]()
{
return [close];
}
public void set[close](float [close])
{
this.[close]=[close];
}
public float getYClose()
{
return yClose;
}
public void setYClose(float yClose)
{
this.yClose=yClose;
}
public float getUtickerClose()
{
return utickerClose;
}
public void setUtickerClose(float utickerClose)
{
this.utickerClose=utickerClose;
}
public float getYUtickerClose()
{
return yUtickerClose;
}
public void setYUtickerClose(float yUtickerClose)
{
this.yUtickerClose=yUtickerClose;
}
public float getDelta()
{
return delta;
}
public void setDelta(float delta)
{
this.delta=delta;
}
public float getYDelta()
{
return yDelta;
}
public void setYDelta(float yDelta)
{
this.yDelta=yDelta;
}
public int getDaysExpire()
{
return daysExpire;
}
public void setDaysExpire(int daysExpire)
{
this.daysExpire=daysExpire;
}
public float getStrikePrice()
{
return strikePrice;
}
public void setStrikePrice(float strikePrice)
{
this.strikePrice=strikePrice;
}
public float getHedgeBeta()
{
return hedgeBeta;
}
public void setHedgeBeta(float hedgeBeta)
{
this.hedgeBeta=hedgeBeta;
}
public float getAreaBeta()
{
return areaBeta;
}
public void setAreaBeta(float areaBeta)
{
this.areaBeta=areaBeta;
}
public float getSectorBeta()
{
return sectorBeta;
}
public void setSectorBeta(float sectorBeta)
{
this.sectorBeta=sectorBeta;
}
public float getGroupBeta()
{
return groupBeta;
}
public void setGroupBeta(float groupBeta)
{
this.groupBeta=groupBeta;
}
public float getQty()
{
return qty;
}
public void setQty(float qty)
{
this.qty=qty;
}
public float getYQty()
{
return yQty;
}
public void setYQty(float yQty)
{
this.yQty=yQty;
}
public float getQtyChange()
{
return qtyChange;
}
public void setQtyChange(float qtyChange)
{
this.qtyChange=qtyChange;
}
public float getHedgeClose()
{
return hedgeClose;
}
public void setHedgeClose(float hedgeClose)
{
this.hedgeClose=hedgeClose;
}
public float getHedgePerc()
{
return hedgePerc;
}
public void setHedgePerc(float hedgePerc)
{
this.hedgePerc=hedgePerc;
}
public float getAreaClose()
{
return areaClose;
}
public void setAreaClose(float areaClose)
{
this.areaClose=areaClose;
}
public float getAreaPerc()
{
return areaPerc;
}
public void setAreaPerc(float areaPerc)
{
this.areaPerc=areaPerc;
}
public float getSectorClose()
{
return sectorClose;
}
public void setSectorClose(float sectorClose)
{
this.sectorClose=sectorClose;
}
public float getSectorPerc()
{
return sectorPerc;
}
public void setSectorPerc(float sectorPerc)
{
this.sectorPerc=sectorPerc;
}
public float getMktValue()
{
return mktValue;
}
public void setMktValue(float mktValue)
{
this.mktValue=mktValue;
}
public float getYMktValue()
{
return yMktValue;
}
public void setYMktValue(float yMktValue)
{
this.yMktValue=yMktValue;
}
public float getPnl()
{
return pnl;
}
public void setPnl(float pnl)
{
this.pnl=pnl;
}
public float getExposure()
{
return exposure;
}
public void setExposure(float exposure)
{
this.exposure=exposure;
}
public float getYExposure()
{
return yExposure;
}
public void setYExposure(float yExposure)
{
this.yExposure=yExposure;
}
public float getHbExposure()
{
return hbExposure;
}
public void setHbExposure(float hbExposure)
{
this.hbExposure=hbExposure;
}
public float getYHbExposure()
{
return yHbExposure;
}
public void setYHbExposure(float yHbExposure)
{
this.yHbExposure=yHbExposure;
}
public float getAbExposure()
{
return abExposure;
}
public void setAbExposure(float abExposure)
{
this.abExposure=abExposure;
}
public float getYAbExposure()
{
return yAbExposure;
}
public void setYAbExposure(float yAbExposure)
{
this.yAbExposure=yAbExposure;
}
public float getSbExposure()
{
return sbExposure;
}
public void setSbExposure(float sbExposure)
{
this.sbExposure=sbExposure;
}
public float getYSbExposure()
{
return ySbExposure;
}
public void setYSbExposure(float ySbExposure)
{
this.ySbExposure=ySbExposure;
}
public float getAreaPnlAmt()
{
return areaPnlAmt;
}
public void setAreaPnlAmt(float areaPnlAmt)
{
this.areaPnlAmt=areaPnlAmt;
}
public float getSectorPnlAmt()
{
return sectorPnlAmt;
}
public void setSectorPnlAmt(float sectorPnlAmt)
{
this.sectorPnlAmt=sectorPnlAmt;
}
public float getPnlPerc()
{
return pnlPerc;
}
public void setPnlPerc(float pnlPerc)
{
this.pnlPerc=pnlPerc;
}
public float getPriceChange()
{
return priceChange;
}
public void setPriceChange(float priceChange)
{
this.priceChange=priceChange;
}
public float getPriceChangePerc()
{
return priceChangePerc;
}
public void setPriceChangePerc(float priceChangePerc)
{
this.priceChangePerc=priceChangePerc;
}
public float getPriceChangeAmt()
{
return priceChangeAmt;
}
public void setPriceChangeAmt(float priceChangeAmt)
{
this.priceChangeAmt=priceChangeAmt;
}
public float getSectorAlphaPerc()
{
return sectorAlphaPerc;
}
public void setSectorAlphaPerc(float sectorAlphaPerc)
{
this.sectorAlphaPerc=sectorAlphaPerc;
}
public float getGroupAlphaPerc()
{
return groupAlphaPerc;
}
public void setGroupAlphaPerc(float groupAlphaPerc)
{
this.groupAlphaPerc=groupAlphaPerc;
}
public float getAreaAlphaPerc()
{
return areaAlphaPerc;
}
public void setAreaAlphaPerc(float areaAlphaPerc)
{
this.areaAlphaPerc=areaAlphaPerc;
}
public float getSectorAlphaAmt()
{
return sectorAlphaAmt;
}
public void setSectorAlphaAmt(float sectorAlphaAmt)
{
this.sectorAlphaAmt=sectorAlphaAmt;
}
public float getGroupAlphaAmt()
{
return groupAlphaAmt;
}
public void setGroupAlphaAmt(float groupAlphaAmt)
{
this.groupAlphaAmt=groupAlphaAmt;
}
public float getAreaAlphaAmt()
{
return areaAlphaAmt;
}
public void setAreaAlphaAmt(float areaAlphaAmt)
{
this.areaAlphaAmt=areaAlphaAmt;
}
public float getAbReturnAmt()
{
return abReturnAmt;
}
public void setAbReturnAmt(float abReturnAmt)
{
this.abReturnAmt=abReturnAmt;
}
public float getAbReturnPerc()
{
return abReturnPerc;
}
public void setAbReturnPerc(float abReturnPerc)
{
this.abReturnPerc=abReturnPerc;
}
public float getIntradayPerc()
{
return intradayPerc;
}
public void setIntradayPerc(float intradayPerc)
{
this.intradayPerc=intradayPerc;
}
public float getIntradayAmt()
{
return intradayAmt;
}
public void setIntradayAmt(float intradayAmt)
{
this.intradayAmt=intradayAmt;
}
public float getOptionalityAmt()
{
return optionalityAmt;
}
public void setOptionalityAmt(float optionalityAmt)
{
this.optionalityAmt=optionalityAmt;
}
public float getOptionalityPerc()
{
return optionalityPerc;
}
public void setOptionalityPerc(float optionalityPerc)
{
this.optionalityPerc=optionalityPerc;
}
public String getCurrency()
{
return currency;
}
public void setCurrency(String currency)
{
this.currency=currency;
}
public float getBaseClose()
{
return baseClose;
}
public void setBaseClose(float baseClose)
{
this.baseClose=baseClose;
}
public float getYBaseClose()
{
return yBaseClose;
}
public void setYBaseClose(float yBaseClose)
{
this.yBaseClose=yBaseClose;
}
public float getFxPerc()
{
return fxPerc;
}
public void setFxPerc(float fxPerc)
{
this.fxPerc=fxPerc;
}
public float getFxAmt()
{
return fxAmt;
}
public void setFxAmt(float fxAmt)
{
this.fxAmt=fxAmt;
}
public float getFxRate()
{
return fxRate;
}
public void setFxRate(float fxRate)
{
this.fxRate=fxRate;
}
public float getYFxRate()
{
return yFxRate;
}
public void setYFxRate(float yFxRate)
{
this.yFxRate=yFxRate;
}
public float getAltIndexReturnPerc()
{
return altIndexReturnPerc;
}
public void setAltIndexReturnPerc(float altIndexReturnPerc)
{
this.altIndexReturnPerc=altIndexReturnPerc;
}
public float getAltIndexReturnAmt()
{
return altIndexReturnAmt;
}
public void setAltIndexReturnAmt(float altIndexReturnAmt)
{
this.altIndexReturnAmt=altIndexReturnAmt;
}
public float getIndexBetaAdjPerc()
{
return indexBetaAdjPerc;
}
public void setIndexBetaAdjPerc(float indexBetaAdjPerc)
{
this.indexBetaAdjPerc=indexBetaAdjPerc;
}
public float getIndexBetaAdjAmt()
{
return indexBetaAdjAmt;
}
public void setIndexBetaAdjAmt(float indexBetaAdjAmt)
{
this.indexBetaAdjAmt=indexBetaAdjAmt;
}
public float getVwap()
{
return vwap;
}
public void setVwap(float vwap)
{
this.vwap=vwap;
}
public float getVwapPnl()
{
return vwapPnl;
}
public void setVwapPnl(float vwapPnl)
{
this.vwapPnl=vwapPnl;
}
public float getHedgeAlphaAmt()
{
return hedgeAlphaAmt;
}
public void setHedgeAlphaAmt(float hedgeAlphaAmt)
{
this.hedgeAlphaAmt=hedgeAlphaAmt;
}
public String getExposureView()
{
return exposureView;
}
public void setExposureView(String exposureView)
{
this.exposureView=exposureView;
}
public String getMarketView()
{
return marketView;
}
public void setMarketView(String marketView)
{
this.marketView=marketView;
}
public String getCallPut()
{
return callPut;
}
public void setCallPut(String callPut)
{
this.callPut=callPut;
}
public String get[month]()
{
return [month];
}
public void set[month](String [month])
{
this.[month]=[month];
}
public boolean getPrivate()
{
return private;
}
public void setPrivate(boolean private)
{
this.private=private;
}
public boolean getIpo()
{
return ipo;
}
public void setIpo(boolean ipo)
{
this.ipo=ipo;
}
public float getRatio()
{
return ratio;
}
public void setRatio(float ratio)
{
this.ratio=ratio;
}
public String getSource()
{
return source;
}
public void setSource(String source)
{
this.source=source;
}
public Timestamp getGoAround()
{
return goAround;
}
public void setGoAround(Timestamp goAround)
{
this.goAround=goAround;
}
public float getAdh()
{
return adh;
}
public void setAdh(float adh)
{
this.adh=adh;
}
public float getAac()
{
return aac;
}
public void setAac(float aac)
{
this.aac=aac;
}
public float getAzap()
{
return azap;
}
public void setAzap(float azap)
{
this.azap=azap;
}
public boolean getExported()
{
return exported;
}
public void setExported(boolean exported)
{
this.exported=exported;
}
public float getHedgeAlphaPerc()
{
return hedgeAlphaPerc;
}
public void setHedgeAlphaPerc(float hedgeAlphaPerc)
{
this.hedgeAlphaPerc=hedgeAlphaPerc;
}
public float getAlphaGoAround()
{
return alphaGoAround;
}
public void setAlphaGoAround(float alphaGoAround)
{
this.alphaGoAround=alphaGoAround;
}
public float getAlphaReal()
{
return alphaReal;
}
public void setAlphaReal(float alphaReal)
{
this.alphaReal=alphaReal;
}
public float getAlphaUnreal()
{
return alphaUnreal;
}
public void setAlphaUnreal(float alphaUnreal)
{
this.alphaUnreal=alphaUnreal;
}
public float getPnlReal()
{
return pnlReal;
}
public void setPnlReal(float pnlReal)
{
this.pnlReal=pnlReal;
}
public float getPnlUnreal()
{
return pnlUnreal;
}
public void setPnlUnreal(float pnlUnreal)
{
this.pnlUnreal=pnlUnreal;
}
public float getCashFlow()
{
return cashFlow;
}
public void setCashFlow(float cashFlow)
{
this.cashFlow=cashFlow;
}
public float getBetaCashFlow()
{
return betaCashFlow;
}
public void setBetaCashFlow(float betaCashFlow)
{
this.betaCashFlow=betaCashFlow;
}
public Timestamp getLastTradeDate()
{
return lastTradeDate;
}
public void setLastTradeDate(Timestamp lastTradeDate)
{
this.lastTradeDate=lastTradeDate;
}
public float getLastTradeQty()
{
return lastTradeQty;
}
public void setLastTradeQty(float lastTradeQty)
{
this.lastTradeQty=lastTradeQty;
}
public float getEnterpriseValue()
{
return enterpriseValue;
}
public void setEnterpriseValue(float enterpriseValue)
{
this.enterpriseValue=enterpriseValue;
}
public String getAssociate()
{
return associate;
}
public void setAssociate(String associate)
{
this.associate=associate;
}
};

53
proto/HistoricRS.java Normal file
View File

@@ -0,0 +1,53 @@
package zbi.risk.server.vhi.mapped
public class HistoricDA
{
public List readAll()throws SQLException
{
Statement statement=null;
ResultSet rs=null;
Connection connection=null;
String strQuery=null;
List list=null;
try
{
<classname> <instancename> = new <classname>
connection=getConnection();
statement=connection.createStatement();
list=new ArrayList();
strQuery="select jdjdjd djdjdjd djdjdjd from <tablename>";
rs=statement.executeQuery(strQuery);
while(rs.next())
{
<assign variables>
list.add(<instancename>);
}
return list;
}
finally
{
if(null!=rs)rs.close();
if(null!=statement)statement.close();
}
}
};
private Connection getConnection()throws SQLException
{
try
{
InitialContext jndiCntx=new InitialContext();
DataSource ds=(DataSource)jndiCntx.lookup("java:MailDb");
jndiCntx.close();
return ds.getConnection();
}
catch(NamingException exception)
{
message("[MailEJB::getConnection] Object not found");
throw new EJBException(exception);
}
}

106
proto/HookDLL.dsp Normal file
View File

@@ -0,0 +1,106 @@
# Microsoft Developer Studio Project File - Name="HookDLL" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=HookDLL - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "HookDLL.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "HookDLL.mak" CFG="HookDLL - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "HookDLL - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "HookDLL - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "HookDLL - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "HOOKDLL_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "HOOKDLL_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
!ELSEIF "$(CFG)" == "HookDLL - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "HookDLL___Win32_Debug"
# PROP BASE Intermediate_Dir "HookDLL___Win32_Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "debug"
# PROP Intermediate_Dir "debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "HOOKDLL_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /Gz /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "HOOKDLL_EXPORTS" /D "STRICT" /D "__FLAT__" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
!ENDIF
# Begin Target
# Name "HookDLL - Win32 Release"
# Name "HookDLL - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\hookdll.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

44
proto/HookDLL.dsw Normal file
View File

@@ -0,0 +1,44 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "HookDLL"=.\HookDLL.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name common
End Project Dependency
}}}
###############################################################################
Project: "common"=..\common\common.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

BIN
proto/HookDLL.ncb Normal file

Binary file not shown.

BIN
proto/HookDLL.opt Normal file

Binary file not shown.

26
proto/HookDLL.plg Normal file
View File

@@ -0,0 +1,26 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: HookDLL - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\WINNT\Profiles\sean\LOCALS~1\Temp\RSP13F.tmp" with contents
[
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"debug/HookDLL.pdb" /debug /machine:I386 /out:"debug/HookDLL.dll" /implib:"debug/HookDLL.lib" /pdbtype:sept
.\debug\hookdll.obj
\work\exe\mscommon.lib
]
Creating command line "link.exe @C:\WINNT\Profiles\sean\LOCALS~1\Temp\RSP13F.tmp"
<h3>Output Window</h3>
Linking...
Creating library debug/HookDLL.lib and object debug/HookDLL.exp
<h3>Results</h3>
HookDLL.dll - 0 error(s), 0 warning(s)
</pre>
</body>
</html>

122
proto/Main.cpp Normal file
View File

@@ -0,0 +1,122 @@
#include <windows.h>
#include <stdio.h>
#include <sample/wave.hpp>
#include <sample/purewave.hpp>
#include <common/pointer.hpp>
#include <common/StringBuffer.hpp>
#include <common/string.hpp>
void DumpSamplesWORD(PureSampleEx &pureSample);
void main()
{
String wavePathFileName3="f:\\AudioBounce.wav";
// int length = sizeof(SampleData);
// length = sizeof(int); // 4 BYTES 32 BITS
// length = sizeof(BYTE); // 1 BYTE 8 BITS
// length = sizeof(DWORD); // 4 BYTES 32 BITS
// length = sizeof(WORD); // 2 BYTES 16 BITS
SmartPointer<WaveForm> waveForm(::new WaveForm(wavePathFileName3),PointerDisposition::Delete);
::OutputDebugString((*waveForm).toString());
PureSampleEx &pureSample=waveForm->getPureSample();
DWORD sizeBytes=pureSample.getSizeBytes();
DWORD numSamples=pureSample.getNumSamples();
PureSampleEx::BitsPerSample bitsPerSample=pureSample.getBitsPerSample();
switch(bitsPerSample)
{
case PureSampleEx::Bit4 :
break;
case PureSampleEx::Bit8 :
break;
case PureSampleEx::Bit16 :
DumpSamplesWORD(pureSample);
break;
case PureSampleEx::Bit32 :
break;
}
//BitsPerSample{Bit4=4,Bit8=8,Bit16=16,Bit32=32};
SmartPointer<PureWave> pureWave(new PureWave(),PointerDisposition::Delete);
pureWave->play(*waveForm);
::OutputDebugString("Here");
}
void DumpSamplesWORD(PureSampleEx &pureSample)
{
String crlf("\r\n");
SmartPointer<FileHandle> outFile(::new FileHandle("c:\\work\\proto\\debug\\samples.csv",FileHandle::Access::Write,FileHandle::Share::ShareNone,FileHandle::Mode::Create), PointerDisposition::Delete);
outFile.disposition(PointerDisposition::Disposition::Delete);
outFile->disposition(FileHandle::Disposition::CloseHandle);
WORD *pSampleDataWORD=(WORD*)pureSample.getSampleData();
DWORD numSamples=pureSample.getNumSamples();
outFile->write("Index,Sample");
outFile->write(crlf);
for(long index=0;index<numSamples;index++)
{
SmartPointer<StringBuffer> sb(::new StringBuffer(),PointerDisposition::Delete);
sb->append(String().fromInt(index+1));
sb->append(",");
sb->append(String().fromUShort(pSampleDataWORD[index]));
sb->append(crlf);
outFile->write(sb->toString());
}
outFile->flush();
outFile->close();
}
/*
// (*waveForm).save("c:\\work\\exe\\DSPDIEHI_2.WAV");
// WaveForm *pWaveForm = new WaveForm(wavePathFileName);
// PureWave *pPureWave = new PureWave();
// pPureWave->play(*pWaveForm);
// ::delete[] pWaveForm;
// ::delete[] pPureWave;
// String wavePathFileName="c:\\work\\exe\\DSPDIEHI.WAV";
// String wavePathFileName2="C:\\Program Files\\Activision\\A-10Cuba\\Media\\Afterburner.wav";
// SmartPointer<WaveForm> waveForm(new WaveForm(wavePathFileName),PointerDisposition::Delete);
// ::OutputDebugString((*waveForm).toString());
// waveForm.destroy();
// waveForm=new WaveForm(wavePathFileName2);
// waveForm.disposition(PointerDisposition::Delete);
// waveForm->save("c:\\work\\exe\\Afterburner.WAV");
// ::OutputDebugString((*waveForm).toString());
// SimpleObject *pSimpleObject;
// pSimpleObject=::new SimpleObject(vector3D,(Ship<<16)|pureObjects.size());
*/

72
proto/NameValuePair.hpp Normal file
View File

@@ -0,0 +1,72 @@
#ifndef _PROTO_NAMEVALUE_HPP_
#define _PROTO_NAMEVALUE_HPP_
#ifndef _COMMON_STRING_HPP_
#include <common/string.hpp>
#endif
class NameValuePair
{
public:
NameValuePair();
NameValuePair(const String &name,const String &value);
const String &getName(void)const;
void setName(const String &name);
const String &getValue(void)const;
void setValue(const String &value);
bool fromString(const String &string);
String toString(void)const;
private:
String mName;
String mValue;
};
inline
NameValuePair::NameValuePair()
{
}
inline
NameValuePair::NameValuePair(const String &name,const String &value)
: mName(name), mValue(value)
{
}
inline
const String &NameValuePair::getName(void)const
{
return mName;
}
inline
void NameValuePair::setName(const String &name)
{
mName=name;
}
inline
const String &NameValuePair::getValue(void)const
{
return mValue;
}
inline
void NameValuePair::setValue(const String &value)
{
mValue=value;
}
inline
bool NameValuePair::fromString(const String &string)
{
if(string.isNull())return false;
mName=string.betweenString(0,'=');
mValue=string.betweenString('=',0);
return true;
}
inline
String NameValuePair::toString(void)const
{
return mName+String("=")+mValue;
}
#endif

BIN
proto/PAINT.ICO Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

BIN
proto/PROCLIB.MDP Normal file

Binary file not shown.

2
proto/PROTO.~RC Normal file
View File

@@ -0,0 +1,2 @@
#include <windows.h>

BIN
proto/RCa01028 Normal file

Binary file not shown.

37
proto/ReadMe.txt Normal file
View File

@@ -0,0 +1,37 @@
========================================================================
DYNAMIC LINK LIBRARY : dlltest
========================================================================
AppWizard has created this dlltest DLL for you.
This file contains a summary of what you will find in each of the files that
make up your dlltest application.
dlltest.dsp
This file (the project file) contains information at the project level and
is used to build a single project or subproject. Other users can share the
project (.dsp) file, but they should export the makefiles locally.
dlltest.cpp
This is the main DLL source file.
dlltest.h
This file contains your DLL exports.
/////////////////////////////////////////////////////////////////////////////
Other standard files:
StdAfx.h, StdAfx.cpp
These files are used to build a precompiled header (PCH) file
named dlltest.pch and a precompiled types file named StdAfx.obj.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" to indicate parts of the source code you
should add to or customize.
/////////////////////////////////////////////////////////////////////////////

8
proto/StdAfx.cpp Normal file
View File

@@ -0,0 +1,8 @@
// stdafx.cpp : source file that includes just the standard includes
// dlltest.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
// TODO: reference any additional headers you need in STDAFX.H
// and not in this file

107
proto/cbtdll.dsp Normal file
View File

@@ -0,0 +1,107 @@
# Microsoft Developer Studio Project File - Name="cbtdll" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=cbtdll - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "cbtdll.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "cbtdll.mak" CFG="cbtdll - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "cbtdll - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "cbtdll - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "cbtdll - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CBTDLL_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CBTDLL_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
!ELSEIF "$(CFG)" == "cbtdll - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "cbtdll___Win32_Debug"
# PROP BASE Intermediate_Dir "cbtdll___Win32_Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CBTDLL_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /Gz /MTd /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CBTDLL_EXPORTS" /D "STRICT" /D "__FLAT__" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /map /debug /machine:I386 /pdbtype:sept
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "cbtdll - Win32 Release"
# Name "cbtdll - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\dllmain.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

59
proto/cbtdll.dsw Normal file
View File

@@ -0,0 +1,59 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "cbtdll"=.\cbtdll.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name common
End Project Dependency
Begin Project Dependency
Project_Dep_Name thread
End Project Dependency
}}}
###############################################################################
Project: "common"=..\common\common.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "thread"=..\thread\thread.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

BIN
proto/cbtdll.ncb Normal file

Binary file not shown.

BIN
proto/cbtdll.opt Normal file

Binary file not shown.

34
proto/cbtdll.plg Normal file
View File

@@ -0,0 +1,34 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: cbtdll - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\WINNT\Profiles\sean\LOCALS~1\Temp\RSPB8.tmp" with contents
[
/nologo /Gz /MTd /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CBTDLL_EXPORTS" /D "STRICT" /D "__FLAT__" /Fp"Debug/cbtdll.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c
"D:\work\proto\dllmain.cpp"
]
Creating command line "cl.exe @C:\WINNT\Profiles\sean\LOCALS~1\Temp\RSPB8.tmp"
Creating temporary file "C:\WINNT\Profiles\sean\LOCALS~1\Temp\RSPB9.tmp" with contents
[
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"Debug/cbtdll.pdb" /map:"Debug/cbtdll.map" /debug /machine:I386 /out:"Debug/cbtdll.dll" /implib:"Debug/cbtdll.lib" /pdbtype:sept
.\Debug\dllmain.obj
\work\exe\mscommon.lib
\work\exe\msthread.lib
]
Creating command line "link.exe @C:\WINNT\Profiles\sean\LOCALS~1\Temp\RSPB9.tmp"
<h3>Output Window</h3>
Compiling...
dllmain.cpp
Linking...
<h3>Results</h3>
cbtdll.dll - 0 error(s), 0 warning(s)
</pre>
</body>
</html>

228
proto/dllmain.cpp Normal file
View File

@@ -0,0 +1,228 @@
#include <common/string.hpp>
#include <common/stdio.hpp>
#include <common/file.hpp>
#include <common/console.hpp>
#include <thread/mutex.hpp>
#include <sgi_stl/map.h>
extern "C"
{
__declspec(dllexport) bool FAR PASCAL unHook(void);
__declspec(dllexport) bool FAR PASCAL setHook(void);
}
bool validate(CREATESTRUCT &createStruct);
LRESULT CALLBACK cbtHookProc(int nCode,WPARAM wParam,LPARAM lParam);
LRESULT handleActive(WPARAM wParam,LPARAM lParam);
LRESULT handleClickSkipped(WPARAM wParam,LPARAM lParam);
LRESULT handleCreateWnd(WPARAM wParam,LPARAM lParam);
LRESULT handleDestroyWnd(WPARAM wParam,LPARAM lParam);
LRESULT handleKeySkipped(WPARAM wParam,LPARAM lParam);
LRESULT handleMinMax(WPARAM wParam,LPARAM lParam);
LRESULT handleMoveSize(WPARAM wParam,LPARAM lParam);
LRESULT handleQs(WPARAM wParam,LPARAM lParam);
LRESULT handleSetFocus(WPARAM wParam,LPARAM lParam);
LRESULT handleSysCommand(WPARAM wParam,LPARAM lParam);
HHOOK smhHook=(HHOOK)0;
Mutex mutex;
File outFile("d:\\log.txt","a+b");
BOOL WINAPI DLLMain(HINSTANCE hDLLInst,DWORD dwReason,LPVOID lpReserved)
{
switch(dwReason)
{
case DLL_PROCESS_ATTACH :
::printf("Process attach\n");
break;
case DLL_PROCESS_DETACH :
::printf("Process detach\n");
break;
case DLL_THREAD_ATTACH :
::printf("Thread attach\n");
break;
case DLL_THREAD_DETACH :
::printf("Thread detach\n");
break;
default :
break;
}
return TRUE;
}
bool FAR PASCAL setHook(void)
{
HINSTANCE hInst=::GetModuleHandle("cbtdll");
if(!hInst)return false;
smhHook=::SetWindowsHookEx(WH_CBT,(HOOKPROC)&cbtHookProc,hInst,0);
return smhHook?true:false;
}
bool FAR PASCAL unHook()
{
if(!smhHook)return false;
::UnhookWindowsHookEx(smhHook);
smhHook=0;
return true;
}
LRESULT CALLBACK cbtHookProc(int nCode,WPARAM wParam,LPARAM lParam)
{
LRESULT result;
if(nCode<0)return result=::CallNextHookEx(smhHook,nCode,wParam,lParam);
switch(nCode)
{
case HCBT_ACTIVATE :
result=handleActive(wParam,lParam);
break;
case HCBT_CLICKSKIPPED :
result=handleClickSkipped(wParam,lParam);
break;
case HCBT_CREATEWND :
result=handleCreateWnd(wParam,lParam);
break;
case HCBT_DESTROYWND :
result=handleDestroyWnd(wParam,lParam);
break;
case HCBT_KEYSKIPPED :
result=handleKeySkipped(wParam,lParam);
break;
case HCBT_MINMAX :
result=handleMinMax(wParam,lParam);
break;
case HCBT_MOVESIZE :
result=handleMoveSize(wParam,lParam);
break;
case HCBT_QS :
result=handleQs(wParam,lParam);
break;
case HCBT_SETFOCUS :
result=handleSetFocus(wParam,lParam);
break;
case HCBT_SYSCOMMAND :
result=handleSysCommand(wParam,lParam);
break;
}
return result;
}
// ************************************************************************************************
LRESULT handleActive(WPARAM wParam,LPARAM lParam)
{
return 0;
}
LRESULT handleClickSkipped(WPARAM wParam,LPARAM lParam)
{
return 0;
}
LRESULT handleCreateWnd(WPARAM wParam,LPARAM lParam)
{
CBT_CREATEWND *pCBTCreateWnd;
CREATESTRUCT *pCreateStruct;
HWND hWnd;
HWND hwndParent;
String windowName;
String parentText;
String strLine;
hWnd=(HWND)wParam;
pCBTCreateWnd=(CBT_CREATEWND*)lParam;
if(!pCBTCreateWnd)
{
return 0;
}
pCreateStruct=pCBTCreateWnd->lpcs;
if(!pCreateStruct)
{
return 0;
}
hwndParent=pCreateStruct->hwndParent;
windowName=pCreateStruct->lpszName;
parentText.reserve(String::MaxString);
::GetWindowText(hwndParent,parentText,String::MaxString);
strLine.reserve(1024);
::sprintf(strLine.str(),"window name=%s, parent=%s",windowName.str(),parentText.str());
mutex.requestMutex();
outFile.writeLine(strLine);
outFile.flush();
mutex.releaseMutex();
if(!validate(*pCreateStruct))
{
outFile.writeLine("Not allowing child window to activate");
outFile.flush();
return 1;
}
return 0;
}
LRESULT handleDestroyWnd(WPARAM wParam,LPARAM lParam)
{
return 0;
}
LRESULT handleKeySkipped(WPARAM wParam,LPARAM lParam)
{
return 0;
}
LRESULT handleMinMax(WPARAM wParam,LPARAM lParam)
{
return 0;
}
LRESULT handleMoveSize(WPARAM wParam,LPARAM lParam)
{
return 0;
}
LRESULT handleQs(WPARAM wParam,LPARAM lParam)
{
return 0;
}
LRESULT handleSetFocus(WPARAM wParam,LPARAM lParam)
{
return 0;
}
LRESULT handleSysCommand(WPARAM wParam,LPARAM lParam)
{
return 0;
}
STDAPI DllCanUnloadNow(void)
{
::printf("DllCanUnloadNow\n");
return S_OK; // S_FALSE
}
STDAPI DllUnregisterServer(void)
{
::printf("DllUnregisterServer\n");
return S_OK;
}
bool validate(CREATESTRUCT &createStruct)
{
String parentText;
String moduleFileName;
moduleFileName.reserve(512);
::GetModuleFileName(createStruct.hInstance,moduleFileName.str(),512);
outFile.writeLine(moduleFileName);
parentText.reserve(String::MaxString);
::GetWindowText(createStruct.hwndParent,parentText,String::MaxString);
// if(parentText==String("Internet Explorer"))return false;
// if(parentText==String("Microsoft Internet Explorer"))return false;
return true;
}

96
proto/dlltest.cpp Normal file
View File

@@ -0,0 +1,96 @@
#include <common/windows.hpp>
#include <common/block.hpp>
#include <common/systime.hpp>
#include <common/filemap.hpp>
#include <common/pview.hpp>
#include <sgi_stl/map.h>
map<int,int> instanceData;
typedef struct tagTICKDATA
{
float tradePrice;
float bidPrice;
float askPrice;
SYSTEMTIME systemTime;
bool isTrade;
}TICKDATA;
FileMap fileMap;
void createTickData(Block<TICKDATA> &tickData);
extern "C"
{
__declspec(dllexport) bool PASCAL GetTicks(char *pTickers,SYSTEMTIME *pStartDate,SYSTEMTIME *pEndDate,char *pHandle);
}
bool APIENTRY DllMain(HANDLE hModule,DWORD reason,LPVOID lpReserved)
{
switch(reason)
{
case DLL_PROCESS_ATTACH:
break;
case DLL_THREAD_ATTACH:
instanceData[(int)::GetCurrentThreadId]=int((int*)new FileMap());
// MessageBox(0,"DLLTEST","DLL_THREAD_ATTACH",MB_OK);
break;
case DLL_THREAD_DETACH:
// ::delete (FileMap*)instanceData[(int)::GetCurrentThreadId];
// MessageBox(0,"DLLTEST","DLL_THREAD_DETACH",MB_OK);
break;
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
bool PASCAL GetTicks(char *pTickers,SYSTEMTIME *pStartDate,SYSTEMTIME *pEndDate,char *pDataHandle)
{
Block<TICKDATA> tickDataBlock;
PureViewOfFile pureView;
// DebugBreak();
FileMap *pFileMap=(FileMap*)instanceData[(int)::GetCurrentThreadId()];
if(!pFileMap){pFileMap=new FileMap();instanceData[(int)::GetCurrentThreadId()]=(int)pFileMap;}
String str=String(pTickers)+String(" ")+SystemTime(*pStartDate).toString()+String(" ")+SystemTime(*pEndDate).toString();
// MessageBox(0,"GetTicks",str.str(),MB_OK);
createTickData(tickDataBlock);
::sprintf(pDataHandle,"%08lx%08lx",(int)GetCurrentProcessId(),(int)GetCurrentThreadId());
if(!pFileMap->create((char*)pDataHandle,0,tickDataBlock.size()*sizeof(TICKDATA),FileMap::ReadWrite,FileMap::Commit))return false;
pureView.createView(*pFileMap);
pureView.write((int)sizeof(TICKDATA));
pureView.write((int)tickDataBlock.size());
for(int index=0;index<tickDataBlock.size();index++)
{
TICKDATA &tickData=tickDataBlock[index];
pureView.write(tickData.tradePrice);
pureView.write(tickData.bidPrice);
pureView.write(tickData.askPrice);
pureView.write((unsigned char*)&tickData.systemTime,sizeof(tickData.systemTime));
pureView.write(tickData.isTrade);
}
pureView.destroyView();
return true;
}
void createTickData(Block<TICKDATA> &tickDataBlock)
{
tickDataBlock.remove();
tickDataBlock.insert(&TICKDATA());
TICKDATA *pTickData=&tickDataBlock[tickDataBlock.size()-1];
pTickData->tradePrice=100;
pTickData->bidPrice=0;
pTickData->askPrice=0;
pTickData->systemTime=SystemTime(2003,5,1).getSYSTEMTIME();
pTickData->isTrade=true;
tickDataBlock.insert(&TICKDATA());
pTickData=&tickDataBlock[tickDataBlock.size()-1];
pTickData->tradePrice=0;
pTickData->bidPrice=101.90;
pTickData->askPrice=0;
pTickData->systemTime=SystemTime(2003,5,1).getSYSTEMTIME();
pTickData->isTrade=false;
}

118
proto/dlltest.dsp Normal file
View File

@@ -0,0 +1,118 @@
# Microsoft Developer Studio Project File - Name="dlltest" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=dlltest - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "dlltest.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "dlltest.mak" CFG="dlltest - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "dlltest - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "dlltest - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""$/Risk/Utility/Sample/Sql", BBHAAAAA"
# PROP Scc_LocalPath "."
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "dlltest - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "DLLTEST_EXPORTS" /Yu"stdafx.h" /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "DLLTEST_EXPORTS" /Yu"stdafx.h" /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
!ELSEIF "$(CFG)" == "dlltest - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "dlltest___Win32_Debug"
# PROP BASE Intermediate_Dir "dlltest___Win32_Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "debug"
# PROP Intermediate_Dir "debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "DLLTEST_EXPORTS" /Yu"stdafx.h" /FD /GZ /c
# ADD CPP /nologo /MTd /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "DLLTEST_EXPORTS" /D "STRICT" /D "__FLAT__" /FD /GZ /c
# SUBTRACT CPP /YX /Yc /Yu
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
!ENDIF
# Begin Target
# Name "dlltest - Win32 Release"
# Name "dlltest - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\dlltest.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\dlltest.h
# End Source File
# Begin Source File
SOURCE=.\StdAfx.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# Begin Source File
SOURCE=.\ReadMe.txt
# End Source File
# End Target
# End Project

52
proto/dlltest.dsw Normal file
View File

@@ -0,0 +1,52 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "common"=..\common\common.dsp - Package Owner=<4>
Package=<5>
{{{
begin source code control
"$/Risk/Utility/Sample/Sql", BBHAAAAA
.
end source code control
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "dlltest"=.\dlltest.dsp - Package Owner=<4>
Package=<5>
{{{
begin source code control
"$/Risk/Utility/Sample/Sql", BBHAAAAA
.
end source code control
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name common
End Project Dependency
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

BIN
proto/dlltest.opt Normal file

Binary file not shown.

33
proto/dlltest.plg Normal file
View File

@@ -0,0 +1,33 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: dlltest - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\WINNT\Profiles\sean\LOCALS~1\Temp\RSPE2.tmp" with contents
[
/nologo /MTd /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "DLLTEST_EXPORTS" /D "STRICT" /D "__FLAT__" /Fo"debug/" /Fd"debug/" /FD /GZ /c
"D:\work\proto\dlltest.cpp"
]
Creating command line "cl.exe @C:\WINNT\Profiles\sean\LOCALS~1\Temp\RSPE2.tmp"
Creating temporary file "C:\WINNT\Profiles\sean\LOCALS~1\Temp\RSPE3.tmp" with contents
[
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"debug/dlltest.pdb" /debug /machine:I386 /out:"debug/dlltest.dll" /implib:"debug/dlltest.lib" /pdbtype:sept
.\debug\dlltest.obj
\work\exe\mscommon.lib
]
Creating command line "link.exe @C:\WINNT\Profiles\sean\LOCALS~1\Temp\RSPE3.tmp"
<h3>Output Window</h3>
Compiling...
dlltest.cpp
Linking...
<h3>Results</h3>
dlltest.dll - 0 error(s), 0 warning(s)
</pre>
</body>
</html>

13
proto/file2.cpp Normal file
View File

@@ -0,0 +1,13 @@
/*
extern int data;
void foo2()
{
data=2;
}
*/

BIN
proto/foo.dat Normal file

Binary file not shown.

75
proto/hookdll.cpp Normal file
View File

@@ -0,0 +1,75 @@
#include <common/string.hpp>
#include <common/stdio.hpp>
#include <common/file.hpp>
#include <common/console.hpp>
#include <thread/mutex.hpp>
#include <sgi_stl/map.h>
extern "C"
{
__declspec(dllexport) bool FAR PASCAL unHook(void);
__declspec(dllexport) bool FAR PASCAL setHook(void);
}
LRESULT CALLBACK callWndHookProc(int nCode,WPARAM wParam,LPARAM lParam);
void handleMessage(UINT message,HWND hwnd,WPARAM wParam,LPARAM lParam);
HHOOK smhHook=(HHOOK)0;
File outFile("d:\log.txt","wb");
HINSTANCE hModuleInst;
BOOL _stdcall DllMain(HINSTANCE hDLLInst,DWORD dwReason,LPVOID lpReserved)
{
switch(dwReason)
{
case DLL_PROCESS_ATTACH :
hModuleInst=hDLLInst;
::printf("Process attach: 0x%08lx\n",hModuleInst);
break;
case DLL_PROCESS_DETACH :
::printf("Process detach\n");
break;
case DLL_THREAD_ATTACH :
::printf("Thread attach\n");
break;
case DLL_THREAD_DETACH :
::printf("Thread detach\n");
break;
default :
break;
}
return TRUE;
}
bool FAR PASCAL setHook(void)
{
smhHook=::SetWindowsHookEx(WH_CALLWNDPROC,(HOOKPROC)&callWndHookProc,hModuleInst,0);
return smhHook?true:false;
}
bool FAR PASCAL unHook()
{
if(!smhHook)return false;
::UnhookWindowsHookEx(smhHook);
smhHook=0;
return true;
}
LRESULT CALLBACK callWndHookProc(int nCode,WPARAM wParam,LPARAM lParam)
{
LRESULT result=0;
CWPSTRUCT *pCWPSTRUCT=(CWPSTRUCT*)lParam;
printf("callWndHookProc\n");
handleMessage(pCWPSTRUCT->message,pCWPSTRUCT->hwnd,pCWPSTRUCT->wParam,pCWPSTRUCT->lParam);
if(nCode<0)return result=::CallNextHookEx(smhHook,nCode,wParam,lParam);
return result;
}
void handleMessage(UINT message,HWND hwnd,WPARAM wParam,LPARAM lParam)
{
String outLine;
outLine.reserve(256);
::sprintf(outLine.str(),"MESSAGE:%ld HWND:0x%08lx WPARAM:%d LPARAM:%ld",message,hwnd,wParam,lParam);
outFile.writeLine(outLine);
outFile.flush();
}

304
proto/main.cpp.saf Normal file
View File

@@ -0,0 +1,304 @@
#include <common/file.hpp>
#include <common/profile.hpp>
#include <common/string.hpp>
#include <common/block.hpp>
#include <ClassGen/NameValuePair.hpp>
class ClassMapper
{
public:
ClassMapper();
virtual ~ClassMapper();
bool createClass(const String &packageName,String className,const String &databaseName,const String &tableName,const String &strPathMapFile,const String &strPathTable);
private:
bool loadMapping(const String &strPathMapFile);
bool mapType(const String &type,String &mapped);
bool createClass(const String &packageName,const String &className,Block<NameValuePair> &variables);
bool createDataAccess(const String &packageName,const String &className,const String &instanceName,const String &databaseName,const String &tableName,Block<NameValuePair> &variables,Block<NameValuePair> &originals);
String makeHungarian(const String &name);
String makeAccessor(const String &name);
String makeMutator(const String &name);
String makeFirstUpper(const String &name);
String makeFirstLower(const String &name);
Block<NameValuePair> mNameValuePairs;
};
ClassMapper::ClassMapper()
{
}
ClassMapper::~ClassMapper()
{
}
bool ClassMapper::createClass(const String &packageName,String className,const String &databaseName,const String &tableName,const String &strPathMapFile,const String &strPathTable)
{
File inFile;
String strLine;
String name;
String value;
String instanceName;
Block<NameValuePair> variables;
Block<NameValuePair> originals;
int errors=0;
if(!loadMapping(strPathMapFile))return false;
if(!inFile.open(strPathTable,"rb"))return false;
while(true)
{
inFile.readLine(strLine);
if(strLine.isNull())break;
name=strLine.betweenString(0,' ');
value=strLine.betweenString(' ',' ');
if(!mapType(value,value))
{
printf("Don't know how to map %s\n",value.str());
errors++;
continue;
}
variables.insert(&NameValuePair(makeHungarian(name),value));
originals.insert(&NameValuePair(name,value));
}
inFile.close();
if(errors)return false;
if(!variables.size())return false;
instanceName=makeFirstLower(className);
className=makeFirstUpper(className);
createClass(packageName,className,variables);
createDataAccess(packageName,className,instanceName,databaseName,tableName,variables,originals);
printf("generation completed.\n");
return true;
}
bool ClassMapper::createClass(const String &packageName,const String &className,Block<NameValuePair> &variables)
{
File outFile;
if(!outFile.open(className+String(".java"),"wb"))return false;
if(!packageName.isNull())outFile.writeLine(String("package ")+packageName);
outFile.writeLine("\t");
outFile.writeLine("\t");
outFile.writeLine(String("public class ")+className);
outFile.writeLine("{");
for(int index=0;index<variables.size();index++)
{
NameValuePair &nameValuePair=variables[index];
outFile.writeLine(String(" private ")+nameValuePair.getValue()+String(" ")+nameValuePair.getName()+String(";"));
}
for(index=0;index<variables.size();index++)
{
NameValuePair &nameValuePair=variables[index];
outFile.writeLine(String(" public ")+nameValuePair.getValue()+String(" ")+makeAccessor(nameValuePair.getName())+String("()"));
outFile.writeLine(" {");
outFile.writeLine(String(" return ")+nameValuePair.getName()+String(";"));
outFile.writeLine(" }");
outFile.writeLine(String(" public void ")+makeMutator(nameValuePair.getName())+String("(")+nameValuePair.getValue()+String(" ")+nameValuePair.getName()+String(")"));
outFile.writeLine(" {");
outFile.writeLine(String(" this.")+nameValuePair.getName()+String("=")+nameValuePair.getName()+String(";"));
outFile.writeLine(" }");
}
outFile.writeLine("};");
outFile.close();
return true;
}
bool ClassMapper::createDataAccess(const String &packageName,const String &className,const String &instanceName,const String &databaseName,const String &tableName,Block<NameValuePair> &variables,Block<NameValuePair> &originals)
{
File outFile;
String select;
if(!outFile.open(className+String("DA")+String(".java"),"wb"))return false;
if(!packageName.isNull())outFile.writeLine(String("package ")+packageName);
outFile.writeLine("\t");
outFile.writeLine("\t");
outFile.writeLine(String("public class ")+className+String("DA"));
outFile.writeLine("{");
outFile.writeLine(" public List readAll()throws SQLException");
outFile.writeLine(" {");
outFile.writeLine(" Statement statement=null;");
outFile.writeLine(" ResultSet rs=null;");
outFile.writeLine(" Connection connection=null;");
outFile.writeLine(" String strQuery=null;");
outFile.writeLine(" List list=null;");
outFile.writeLine("\t");
outFile.writeLine(" try");
outFile.writeLine(" {");
outFile.writeLine(String(" ")+className+String(" ")+instanceName+String(" = new ")+className+String("();"));
outFile.writeLine(" connection=getConnection();");
outFile.writeLine(" statement=connection.createStatement();");
outFile.writeLine(" list=new ArrayList();");
select=" strQuery=\"select ";
for(int index=0;index<originals.size();index++)
{
select+=originals[index].getName();
if(index<originals.size()-1)select+=String(", ");
}
select+=String(" from ")+tableName+String("\";");
outFile.writeLine(select);
outFile.writeLine(" rs=statement.executeQuery(strQuery);");
outFile.writeLine(" while(rs.next())");
outFile.writeLine(" {");
for(index=0;index<variables.size();index++)
{
NameValuePair &original=originals[index];
NameValuePair &variable=variables[index];
outFile.writeLine(String(" ")+instanceName+String(".")+makeMutator(variable.getName())+String("(rs.get")+makeFirstUpper(variable.getValue())+String("(\"")+original.getName()+String("\"));"));
}
outFile.writeLine(String(" list.add(")+instanceName+String(");"));
outFile.writeLine(" }");
outFile.writeLine(" return list;");
outFile.writeLine(" }");
outFile.writeLine(" finally");
outFile.writeLine(" {");
outFile.writeLine(" if(null!=rs)rs.close();");
outFile.writeLine(" if(null!=statement)statement.close();");
outFile.writeLine(" }");
outFile.writeLine(" }");
outFile.writeLine(" private Connection getConnection()throws SQLException");
outFile.writeLine(" {");
outFile.writeLine(" try");
outFile.writeLine(" {");
outFile.writeLine(" InitialContext jndiCntx=new InitialContext();");
outFile.writeLine(String(" DataSource ds=(DataSource)jndiCntx.lookup(\"java:") +databaseName+String("\")"));
outFile.writeLine(" jndiCntx.close();");
outFile.writeLine(" return ds.getConnection();");
outFile.writeLine(" }");
outFile.writeLine(" catch(NamingException exception)");
outFile.writeLine(" {");
outFile.writeLine(" message(\"[getConnection] Object not found\");");
outFile.writeLine(" throw new EJBException(exception);");
outFile.writeLine(" }");
outFile.writeLine(" }");
outFile.writeLine("};");
outFile.close();
return true;
}
bool ClassMapper::mapType(const String &type,String &mapped)
{
for(int index=0;index<mNameValuePairs.size();index++)
{
NameValuePair &nameValuePair=mNameValuePairs[index];
if(nameValuePair.getName()==type)return mapped=nameValuePair.getValue(),true;
}
return false;
}
bool ClassMapper::loadMapping(const String &strPathMapFile)
{
File inFile;
String strLine;
String key;
String value;
mNameValuePairs.remove();
if(!inFile.open(strPathMapFile,"rb"))return false;
while(true)
{
inFile.readLine(strLine);
if(strLine.isNull())break;
key=strLine.betweenString(0,'=');
value=strLine.betweenString('=',0);
mNameValuePairs.insert(&NameValuePair(key,value));
}
return true;
}
String ClassMapper::makeHungarian(const String &name)
{
String hungarianName;
int length=name.length();
for(int index=0;index<length;index++)
{
char ch=name.charAt(index);
if(ch=='_')
{
if(index+1>=length)break;
index++;
ch=toupper(name.charAt(index));
hungarianName+=ch;
}
else hungarianName+=ch;
}
return hungarianName;
}
String ClassMapper::makeAccessor(const String &name)
{
String str;
str+="get";
str+=toupper(name.charAt(0));
str+=name.substr(1);
return str;
}
String ClassMapper::makeMutator(const String &name)
{
String str;
str+="set";
str+=toupper(name.charAt(0));
str+=name.substr(1);
return str;
}
String ClassMapper::makeFirstUpper(const String &name)
{
String str;
str+=toupper(name.charAt(0));
str+=name.substr(1);
return str;
}
String ClassMapper::makeFirstLower(const String &name)
{
String str;
str+=tolower(name.charAt(0));
str+=name.substr(1);
return str;
}
#include <common/filemap.hpp>
#include <common/pview.hpp>
extern "C"
{
bool PASCAL GetTicks(char *pTickers,SYSTEMTIME *pStartDate,SYSTEMTIME *pEndDate,char *pHandle);
}
int main(int argc,char **argv)
{
SYSTEMTIME startTime;
SYSTEMTIME endTime;
char buffer[128];
::memset(buffer,0,sizeof(buffer));
GetTicks("IBM",&startTime,&endTime,buffer);
FileMap fileMap;
if(!fileMap.open(buffer,0,128))return 0;
PureViewOfFile pureView(fileMap);
int size(0);
pureView.read(size);
if(7!=argc)
{
printf("USAGE: mapclass <packagename><classname><databasename><tablename><pathtomappingtable><pathtotable>\n");
printf("(ie) mapclass zbi.risk.server.vhi.mapped Historic DRMS dt_main_positions c:\\work\\classgen\\mapping.txt c:\\work\\classgen\\table.txt\n");
return 0;
}
ClassMapper classMapper;
if(!classMapper.createClass(argv[1],argv[2],argv[3],argv[4],argv[5],argv[6]))return 1;
return 0;
}

44
proto/makeres.cpp Normal file
View File

@@ -0,0 +1,44 @@
#include <common/string.hpp>
#include <common/file.hpp>
#include <common/openfile.hpp>
void main(int argc,char **argv)
{
String strLine;
int startIndex=0;
int currentIndex=0;
int count=0;
if(3!=argc)
{
::printf("USAGE makeres <filename> <startindex>\n");
::printf("(ie) makeres stringfile.txt 22000\n");
return;
}
startIndex=String(argv[2]).toInt();
File inFile(argv[1]);
if(!inFile.isOkay())
{
printf("Error opening file.\n");
return;
}
currentIndex=startIndex;
printf("STRINGTABLE DISCARDABLE\n");
printf("BEGIN\n");
while(true)
{
if(!inFile.readLine(strLine))break;
if(strLine.isNull())continue;
printf(" STRING_%d %s\n",currentIndex++,strLine.str());
count++;
}
printf("END\n");
printf("******************************************************\n");
currentIndex=startIndex;
for(int index=0;index<count;index++)
{
printf("#define STRING_%d %d\n",currentIndex,currentIndex);
currentIndex++;
}
printf("#define STRING_CHORD_END %d\n",currentIndex);
}

7
proto/mapping.txt Normal file
View File

@@ -0,0 +1,7 @@
nvarchar=String
decimal=float
float=float
varchar=String
smalldatetime=Timestamp
int=int
bit=boolean

41
proto/mykernel.cpp Normal file
View File

@@ -0,0 +1,41 @@
#include <common/windows.hpp>
#include <common/file.hpp>
int processCount=0;
File outFile;
extern "C"
{
__declspec(dllexport) FARPROC PASCAL GetProcAddress(HMODULE hModule,LPCSTR lpProcName);
// __declspec(dllexport) HMODULE PASCAL GetModuleHandle(LPCTSTR lpModuleName);
// __declspec(dllexport) HMODULE PASCAL LoadLibrary(LPCTSTR lpModuleName);
}
BOOL WINAPI DLLMain(HINSTANCE hDLLInst,DWORD dwReason,LPVOID lpReserved)
{
switch(dwReason)
{
case DLL_PROCESS_ATTACH :
if(!processCount)outFile.open("mykernel.log","wb");
outFile.writeLine("Process attach");
outFile.flush();
processCount++;
break;
case DLL_PROCESS_DETACH :
if(processCount)outFile.writeLine("Process detach");
if(--processCount<=0)outFile.close();
break;
case DLL_THREAD_ATTACH :
break;
case DLL_THREAD_DETACH :
break;
default :
break;
}
return TRUE;
}
//FARPROC PASCAL GetProcAddress(HMODULE hModule,LPCSTR lpProcName)
//{
// return 0;
//}

106
proto/mykernel.dsp Normal file
View File

@@ -0,0 +1,106 @@
# Microsoft Developer Studio Project File - Name="mykernel" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=mykernel - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "mykernel.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "mykernel.mak" CFG="mykernel - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "mykernel - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "mykernel - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "mykernel - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYKERNEL_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYKERNEL_EXPORTS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
!ELSEIF "$(CFG)" == "mykernel - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "mykernel___Win32_Debug"
# PROP BASE Intermediate_Dir "mykernel___Win32_Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "msvcobj"
# PROP Intermediate_Dir "msvcobj"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYKERNEL_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W1 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYKERNEL_EXPORTS" /D "STRICT" /D "__FLAT__" /YX /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
!ENDIF
# Begin Target
# Name "mykernel - Win32 Release"
# Name "mykernel - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\mykernel.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

44
proto/mykernel.dsw Normal file
View File

@@ -0,0 +1,44 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "common"=..\common\common.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "mykernel"=.\mykernel.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name common
End Project Dependency
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

BIN
proto/mykernel.ncb Normal file

Binary file not shown.

BIN
proto/mykernel.opt Normal file

Binary file not shown.

30
proto/mykernel.plg Normal file
View File

@@ -0,0 +1,30 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: mykernel - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\WINNT\Profiles\sean\LOCALS~1\Temp\RSPE6.tmp" with contents
[
/nologo /MTd /W1 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MYKERNEL_EXPORTS" /D "STRICT" /D "__FLAT__" /Fp"msvcobj/mykernel.pch" /YX /Fo"msvcobj/" /Fd"msvcobj/" /FD /GZ /c
"D:\work\proto\mykernel.cpp"
]
Creating command line "cl.exe @C:\WINNT\Profiles\sean\LOCALS~1\Temp\RSPE6.tmp"
<h3>Output Window</h3>
Compiling...
mykernel.cpp
D:\work\proto\mykernel.cpp(9) : error C2556: 'int __stdcall GetProcAddress(struct HINSTANCE__ *,const char *)' : overloaded function differs only by return type from 'int (__stdcall *__stdcall GetProcAddress(struct HINSTANCE__ *,const char *))(void)'
d:\program files\microsoft visual studio\vc98\include\winbase.h(1108) : see declaration of 'GetProcAddress'
D:\work\proto\mykernel.cpp(9) : error C2373: 'GetProcAddress' : redefinition; different type modifiers
d:\program files\microsoft visual studio\vc98\include\winbase.h(1108) : see declaration of 'GetProcAddress'
Error executing cl.exe.
<h3>Results</h3>
mykernel.obj - 2 error(s), 0 warning(s)
</pre>
</body>
</html>

130
proto/proto.001 Normal file
View File

@@ -0,0 +1,130 @@
# Microsoft Developer Studio Project File - Name="proto" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 5.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=proto - Win32 Release
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "proto.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "proto.mak" CFG="proto - Win32 Release"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "proto - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "proto - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "proto - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir ".\Release"
# PROP BASE Intermediate_Dir ".\Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir ".\Release"
# PROP Intermediate_Dir ".\Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
!ELSEIF "$(CFG)" == "proto - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir ".\proto___"
# PROP BASE Intermediate_Dir ".\proto___"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir ".\msvcobj"
# PROP Intermediate_Dir ".\msvcobj"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
# ADD CPP /nologo /Zp1 /MTd /GX /Z7 /Od /I "\work" /I "\parts" /I "\parts\sgi_stl" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "STRICT" /D "__FLAT__" /YX /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib comctl32.lib winmm.lib oleaut32.lib ole32.lib /nologo /subsystem:windows /pdb:none /debug /debugtype:both /machine:I386
# SUBTRACT LINK32 /map
!ENDIF
# Begin Target
# Name "proto - Win32 Release"
# Name "proto - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
# Begin Source File
SOURCE=.\main.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
# Begin Source File
SOURCE=.\Paint.ico
# End Source File
# Begin Source File
SOURCE=.\toolbar.bmp
# End Source File
# End Group
# Begin Source File
SOURCE=..\Exe\com.lib
# End Source File
# Begin Source File
SOURCE=..\Exe\mscommon.lib
# End Source File
# Begin Source File
SOURCE=..\Exe\psapint.lib
# End Source File
# Begin Source File
SOURCE=..\Exe\toolbar.lib
# End Source File
# End Target
# End Project

127
proto/proto.RC Normal file
View File

@@ -0,0 +1,127 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXfINCLUDE 2 resource.
//
#define APSTUDIO_HIDDEN_SYMBOLS
#include "windows.h"
#undef APSTUDIO_HIDDEN_SYMBOLS
#include "proto\proto.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
PAINT ICON DISCARDABLE "PAINT.ICO"
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//
TOOLBAR BITMAP MOVEABLE PURE "TOOLBAR.BMP"
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//
MAINMENU MENU DISCARDABLE
BEGIN
POPUP "&File"
BEGIN
MENUITEM "&Open...", FILE_OPEN
MENUITEM "E&xit", FILE_EXIT
MENUITEM "&Browse", FILE_BROWSE
END
POPUP "&Source"
BEGIN
MENUITEM "&Select...", SOURCE_SELECT
END
END
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""windows.h""\r\n"
"#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
"#include ""proto\\proto.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
STRING_IMAGEVIEWCLASSNAME "ImageView"
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
STRINGTABLE DISCARDABLE
BEGIN
STRING_VIDCAPKEYNAME "Software\\Diversified\\VidCap"
STRING_SETTINGSKEYNAME "Software\\Diversified\\VidCap\\Settings"
STRING_SETTINGSCAPTUREFILENAME "CaptureFile"
STRING_SETTINGSUSESEQUENCING "Sequencing"
STRING_SETTINGSPREVIEWWIDTH "PreviewWidth"
STRING_SETTINGSPREVIEWHEIGHT "PreviewHeight"
STRING_SETTINGSCAPTUREWIDTH "CaptureWidth"
STRING_SETTINGSCAPTUREHEIGHT "CaptureHeight"
STRING_SETTINGSPREVIEWRATE "PreviewRate"
END
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

106
proto/proto.dsp Normal file
View File

@@ -0,0 +1,106 @@
# Microsoft Developer Studio Project File - Name="proto" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=proto - Win32 Release
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "proto.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "proto.mak" CFG="proto - Win32 Release"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "proto - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "proto - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "proto - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir ".\Release"
# PROP BASE Intermediate_Dir ".\Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir ".\Release"
# PROP Intermediate_Dir ".\Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
!ELSEIF "$(CFG)" == "proto - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir ".\proto___"
# PROP BASE Intermediate_Dir ".\proto___"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir ".\msvcobj"
# PROP Intermediate_Dir ".\msvcobj"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c
# ADD CPP /nologo /Gz /MTd /GR /GX /Zi /Od /I "\work" /I "\parts" /I "\parts\sgi_stl" /D "WIN32" /D "_WINDOWS" /D "STRICT" /D "__FLAT__" /D "_MBCS" /D "_COMMON_USENLS_" /FR /YX"windows.hpp" /FD /c
# ADD BASE MTL /nologo /D "_DEBUG" /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386
# ADD LINK32 comctl32.lib winmm.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib wininet.lib strmiids.lib winmm.lib vfw32.lib debug\HookDLL.lib version.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /out:"f:\work\proto\debug\proto.exe"
!ENDIF
# Begin Target
# Name "proto - Win32 Release"
# Name "proto - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90"
# Begin Source File
SOURCE=.\Main.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

74
proto/proto.dsw Normal file
View File

@@ -0,0 +1,74 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "bsptree"=..\bsptree\bsptree.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "common"=..\common\common.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "proto"=.\proto.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name common
End Project Dependency
Begin Project Dependency
Project_Dep_Name bsptree
End Project Dependency
Begin Project Dependency
Project_Dep_Name sample
End Project Dependency
}}}
###############################################################################
Project: "sample"=..\sample\sample.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

BIN
proto/proto.mdp Normal file

Binary file not shown.

BIN
proto/proto.ncb Normal file

Binary file not shown.

BIN
proto/proto.opt Normal file

Binary file not shown.

354
proto/proto.plg Normal file
View File

@@ -0,0 +1,354 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: common - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP605.tmp" with contents
[
/nologo /Gz /MTd /GX /Zi /Od /I "\work" /I "\parts" /D "_WINDOWS" /D "__FLAT__" /D "STRICT" /D "WIN32" /FR"msvcobj/" /Fo"msvcobj/" /Fd"msvcobj/" /FD /I /work" /I /parts" /I /work" /I /parts" " " " " /c
"F:\work\common\accelerator.cpp"
"F:\work\common\Bitmap.cpp"
"F:\work\common\Bminfo.cpp"
"F:\work\common\Bmplnk.cpp"
"F:\work\common\Brush.cpp"
"F:\work\common\Btnlnk.cpp"
"F:\work\common\calendar.cpp"
"F:\work\common\Catmull.cpp"
"F:\work\common\Cbdata.cpp"
"F:\work\common\Cbdatahk.cpp"
"F:\work\common\Clipbrd.cpp"
"F:\work\common\Console.cpp"
"F:\work\common\Control.cpp"
"F:\work\common\Crsctrl.cpp"
"F:\work\common\Ddemsg.cpp"
"F:\work\common\Dib.cpp"
"F:\work\common\Diskinfo.cpp"
"F:\work\common\Drawbmp.cpp"
"F:\work\common\Dwindow.cpp"
"F:\work\common\elastic.cpp"
"F:\work\common\errormsg.cpp"
"F:\work\common\File.cpp"
"F:\work\common\Fileio.cpp"
"F:\work\common\Filemap.cpp"
"F:\work\common\Finddata.cpp"
"F:\work\common\Font.cpp"
"F:\work\common\gdipoint.cpp"
"F:\work\common\Guiwnd.cpp"
"F:\work\common\Hookproc.cpp"
"F:\work\common\Iconfrm.cpp"
"F:\work\common\Infowin.cpp"
"F:\work\common\Intel.cpp"
"F:\work\common\Iobuff.cpp"
"F:\work\common\Logowin.cpp"
"F:\work\common\Macro.cpp"
"F:\work\common\Math.cpp"
"F:\work\common\Mdifrm.cpp"
"F:\work\common\Mdiwin.cpp"
"F:\work\common\Memfile.cpp"
"F:\work\common\Mmtimer.cpp"
"F:\work\common\Odbutton.cpp"
"F:\work\common\Odlist.cpp"
"F:\work\common\Odlstalt.cpp"
"F:\work\common\Odlstchk.cpp"
"F:\work\common\opendlg.Cpp"
"F:\work\common\Openfile.cpp"
"F:\work\common\opndlgex.cpp"
"F:\work\common\Owner.cpp"
"F:\work\common\Pathfnd.cpp"
"F:\work\common\Point.cpp"
"F:\work\common\Process.cpp"
"F:\work\common\Profile.cpp"
"F:\work\common\Progress.cpp"
"F:\work\common\Purebmp.cpp"
"F:\work\common\Purebyte.cpp"
"F:\work\common\puredbl.cpp"
"F:\work\common\Puredwrd.cpp"
"F:\work\common\Purehdc.cpp"
"F:\work\common\puremenu.Cpp"
"F:\work\common\Purepal.cpp"
"F:\work\common\purewrd.cpp"
"F:\work\common\Pview.cpp"
"F:\work\common\Regkey.cpp"
"F:\work\common\resbmp.cpp"
"F:\work\common\Richedit.cpp"
"F:\work\common\rubber.cpp"
"F:\work\common\Sdate.cpp"
"F:\work\common\Smrtstrm.cpp"
"F:\work\common\snapshot.cpp"
"F:\work\common\static.cpp"
"F:\work\common\String.cpp"
"F:\work\common\Systime.cpp"
"F:\work\common\Vhandler.cpp"
"F:\work\common\Vxdctrl.cpp"
"F:\work\common\widestr.Cpp"
"F:\work\common\Window.cpp"
"F:\work\common\Wintimer.cpp"
]
Creating command line "cl.exe @C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP605.tmp"
Creating temporary file "C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP606.tmp" with contents
[
/nologo /Gz /MTd /GX /Zi /Od /I "\work" /I "\parts" /D "_WINDOWS" /D "__FLAT__" /D "STRICT" /D "WIN32" /FR"msvcobj/" /Fp"msvcobj/common.pch" /YX /Fo"msvcobj/" /Fd"msvcobj/" /FD /I /work" /I /parts" /I /work" /I /parts" " " " " /c
"F:\work\common\Bmdata.cpp"
]
Creating command line "cl.exe @C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP606.tmp"
Creating temporary file "C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP607.tmp" with contents
[
/nologo /out:"..\exe\mscommon.lib"
.\msvcobj\accelerator.obj
.\msvcobj\Bitmap.obj
.\msvcobj\Bmdata.obj
.\msvcobj\Bminfo.obj
.\msvcobj\Bmplnk.obj
.\msvcobj\Brush.obj
.\msvcobj\Btnlnk.obj
.\msvcobj\calendar.obj
.\msvcobj\Catmull.obj
.\msvcobj\Cbdata.obj
.\msvcobj\Cbdatahk.obj
.\msvcobj\Clipbrd.obj
.\msvcobj\Console.obj
.\msvcobj\Control.obj
.\msvcobj\Crsctrl.obj
.\msvcobj\Ddemsg.obj
.\msvcobj\Dib.obj
.\msvcobj\Diskinfo.obj
.\msvcobj\Drawbmp.obj
.\msvcobj\Dwindow.obj
.\msvcobj\elastic.obj
.\msvcobj\errormsg.obj
.\msvcobj\File.obj
.\msvcobj\Fileio.obj
.\msvcobj\Filemap.obj
.\msvcobj\Finddata.obj
.\msvcobj\Font.obj
.\msvcobj\gdipoint.obj
.\msvcobj\Guiwnd.obj
.\msvcobj\Hookproc.obj
.\msvcobj\Iconfrm.obj
.\msvcobj\Infowin.obj
.\msvcobj\Intel.obj
.\msvcobj\Iobuff.obj
.\msvcobj\Logowin.obj
.\msvcobj\Macro.obj
.\msvcobj\Math.obj
.\msvcobj\Mdifrm.obj
.\msvcobj\Mdiwin.obj
.\msvcobj\Memfile.obj
.\msvcobj\Mmtimer.obj
.\msvcobj\Odbutton.obj
.\msvcobj\Odlist.obj
.\msvcobj\Odlstalt.obj
.\msvcobj\Odlstchk.obj
.\msvcobj\opendlg.obj
.\msvcobj\Openfile.obj
.\msvcobj\opndlgex.obj
.\msvcobj\Owner.obj
.\msvcobj\Pathfnd.obj
.\msvcobj\Point.obj
.\msvcobj\Process.obj
.\msvcobj\Profile.obj
.\msvcobj\Progress.obj
.\msvcobj\Purebmp.obj
.\msvcobj\Purebyte.obj
.\msvcobj\puredbl.obj
.\msvcobj\Puredwrd.obj
.\msvcobj\Purehdc.obj
.\msvcobj\puremenu.obj
.\msvcobj\Purepal.obj
.\msvcobj\purewrd.obj
.\msvcobj\Pview.obj
.\msvcobj\Regkey.obj
.\msvcobj\resbmp.obj
.\msvcobj\Richedit.obj
.\msvcobj\rubber.obj
.\msvcobj\Sdate.obj
.\msvcobj\Smrtstrm.obj
.\msvcobj\snapshot.obj
.\msvcobj\static.obj
.\msvcobj\String.obj
.\msvcobj\Systime.obj
.\msvcobj\Vhandler.obj
.\msvcobj\Vxdctrl.obj
.\msvcobj\widestr.obj
.\msvcobj\Window.obj
.\msvcobj\Wintimer.obj
]
Creating command line "link.exe -lib @C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP607.tmp"
<h3>Output Window</h3>
Compiling...
accelerator.cpp
Bitmap.cpp
Bminfo.cpp
Bmplnk.cpp
Brush.cpp
Btnlnk.cpp
calendar.cpp
Catmull.cpp
Cbdata.cpp
Cbdatahk.cpp
Clipbrd.cpp
Console.cpp
Control.cpp
Crsctrl.cpp
Ddemsg.cpp
Dib.cpp
Diskinfo.cpp
Drawbmp.cpp
Dwindow.cpp
elastic.cpp
Generating Code...
Compiling...
errormsg.cpp
File.cpp
Fileio.cpp
Filemap.cpp
Finddata.cpp
Font.cpp
gdipoint.cpp
Guiwnd.cpp
Hookproc.cpp
Iconfrm.cpp
Infowin.cpp
Intel.cpp
Iobuff.cpp
Logowin.cpp
Macro.cpp
Math.cpp
Mdifrm.cpp
Mdiwin.cpp
Memfile.cpp
Mmtimer.cpp
Generating Code...
Compiling...
Odbutton.cpp
Odlist.cpp
Odlstalt.cpp
Odlstchk.cpp
opendlg.Cpp
Openfile.cpp
opndlgex.cpp
Owner.cpp
Pathfnd.cpp
Point.cpp
Process.cpp
Profile.cpp
Progress.cpp
Purebmp.cpp
Purebyte.cpp
puredbl.cpp
Puredwrd.cpp
Purehdc.cpp
puremenu.Cpp
Purepal.cpp
Generating Code...
Compiling...
purewrd.cpp
Pview.cpp
Regkey.cpp
resbmp.cpp
Richedit.cpp
rubber.cpp
Sdate.cpp
Smrtstrm.cpp
snapshot.cpp
static.cpp
String.cpp
Systime.cpp
Vhandler.cpp
Vxdctrl.cpp
widestr.Cpp
Window.cpp
Wintimer.cpp
Generating Code...
Compiling...
Bmdata.cpp
Creating library...
<h3>
--------------------Configuration: bsptree - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP608.tmp" with contents
[
/nologo /Gz /MTd /GX /Zi /Od /I "\work" /I "\parts" /D "_DEBUG" /D "__FLAT__" /D "STRICT" /D "_WINDOWS" /D "WIN32" /FR".\msvcobj/" /Fo".\msvcobj/" /Fd".\msvcobj/" /FD /c
"F:\work\bsptree\Bsptmpl.cpp"
"F:\work\bsptree\Rgbtree.cpp"
"F:\work\bsptree\Stdtmpl.cpp"
]
Creating command line "cl.exe @C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP608.tmp"
Creating command line "link.exe -lib /nologo /out:"..\exe\msbsp.lib" .\msvcobj\Bsptmpl.obj .\msvcobj\Rgbtree.obj .\msvcobj\Stdtmpl.obj "
<h3>Output Window</h3>
Compiling...
Bsptmpl.cpp
Rgbtree.cpp
Stdtmpl.cpp
Generating Code...
Creating library...
<h3>
--------------------Configuration: sample - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP609.tmp" with contents
[
/nologo /Gz /MTd /Zi /Od /D "_DEBUG" /D "__FLAT__" /D "STRICT" /D "WIN32" /D "_WINDOWS" /FR".\msvcobj/" /Fp"\work\exe\msvc42.pch" /YX"windows.h" /Fo".\msvcobj/" /Fd".\msvcobj/" /FD /I /work" /I /parts" /I /work" /I /parts" " " " " /c
"F:\work\sample\Datachnk.cpp"
"F:\work\sample\Devhndlr.cpp"
"F:\work\sample\fmtchnk.cpp"
"F:\work\sample\GenChnk.cpp"
"F:\work\sample\Puresmpl.cpp"
"F:\work\sample\Purewave.cpp"
"F:\work\sample\Wave.cpp"
"F:\work\sample\Wavein.cpp"
"F:\work\sample\Waveout.cpp"
]
Creating command line "cl.exe @C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP609.tmp"
Creating command line "link.exe -lib /nologo /out:"..\exe\sample.lib" .\msvcobj\Datachnk.obj .\msvcobj\Devhndlr.obj .\msvcobj\fmtchnk.obj .\msvcobj\GenChnk.obj .\msvcobj\Puresmpl.obj .\msvcobj\Purewave.obj .\msvcobj\Wave.obj .\msvcobj\Wavein.obj .\msvcobj\Waveout.obj "
<h3>Output Window</h3>
Compiling...
Datachnk.cpp
Devhndlr.cpp
fmtchnk.cpp
GenChnk.cpp
Puresmpl.cpp
Purewave.cpp
Wave.cpp
Wavein.cpp
Waveout.cpp
Creating library...
<h3>
--------------------Configuration: proto - Win32 Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP60A.tmp" with contents
[
/nologo /Gz /MTd /GR /GX /Zi /Od /I "\work" /I "\parts" /I "\parts\sgi_stl" /D "WIN32" /D "_WINDOWS" /D "STRICT" /D "__FLAT__" /D "_MBCS" /D "_COMMON_USENLS_" /FR".\msvcobj/" /Fp".\msvcobj/proto.pch" /YX"windows.hpp" /Fo".\msvcobj/" /Fd".\msvcobj/" /FD /c
"F:\work\proto\Main.cpp"
]
Creating command line "cl.exe @C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP60A.tmp"
Creating temporary file "C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP60B.tmp" with contents
[
comctl32.lib winmm.lib wsock32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib wininet.lib strmiids.lib winmm.lib vfw32.lib debug\HookDLL.lib version.lib /nologo /subsystem:console /pdb:none /debug /machine:I386 /out:"f:\work\proto\debug\proto.exe"
.\msvcobj\Main.obj
\work\exe\mscommon.lib
\work\exe\msbsp.lib
\work\exe\sample.lib
]
Creating command line "link.exe @C:\DOCUME~1\TERNET~1\LOCALS~1\Temp\RSP60B.tmp"
<h3>Output Window</h3>
Compiling...
Main.cpp
Linking...
Creating library f:\work\proto\debug\proto.lib and object f:\work\proto\debug\proto.exp
Creating command line "bscmake.exe /nologo /o".\msvcobj/proto.bsc" .\msvcobj\Main.sbr"
Creating browse info file...
<h3>Output Window</h3>
<h3>Results</h3>
proto.exe - 0 error(s), 0 warning(s)
</pre>
</body>
</html>

BIN
proto/pspbrwse.jbf Normal file

Binary file not shown.

0
proto/samples.csv Normal file
View File

657
proto/scraps.txt Normal file
View File

@@ -0,0 +1,657 @@
/*
class Comparator
{
public:
bool operator()(const HWND hwnd1,const HWND hwnd2)const{return (int)hwnd1<(int)hwnd2;}
};
typedef map<HWND,int,Comparator> WinMap;
WinMap smWinMap;
*/
#include <common/windows.hpp>
#include <common/library.hpp>
#include <thread/event.hpp>
int messageLoop(void);
void yield();
#include <hookproc/apientry.hpp>
#include <hookproc/procaddr.hpp>
class CBTHook;
typedef ProcAddress<CBTHook> CBTHookProc;
//class CBTHook : protected APIEntry, private CBTHookProc
class CBTHook : protected APIEntry, private CBTHookProc
{
public:
typedef LRESULT (__stdcall *LPFNCBTPROC)(int nCode,WPARAM wParam,LPARAM lParam);
CBTHook();
virtual ~CBTHook();
DWORD getHookAddress(void);
protected:
virtual LRESULT handleActive(WPARAM wParam,LPARAM lParam);
virtual LRESULT handleClickSkipped(WPARAM wParam,LPARAM lParam);
virtual LRESULT handleCreateWnd(WPARAM wParam,LPARAM lParam);
virtual LRESULT handleDestroyWnd(WPARAM wParam,LPARAM lParam);
virtual LRESULT handleKeySkipped(WPARAM wParam,LPARAM lParam);
virtual LRESULT handleMinMax(WPARAM wParam,LPARAM lParam);
virtual LRESULT handleMoveSize(WPARAM wParam,LPARAM lParam);
virtual LRESULT handleQs(WPARAM wParam,LPARAM lParam);
virtual LRESULT handleSetFocus(WPARAM wParam,LPARAM lParam);
virtual LRESULT handleSysCommand(WPARAM wParam,LPARAM lParam);
private:
enum {ParamLength=12};
CBTHook &operator=(const CBTHook &cbtHook);
LRESULT entryProc(int nCode,WPARAM wParam,LPARAM lParam);
HHOOK mhHook;
};
inline
CBTHook::CBTHook(void)
: APIEntry(ParamLength,(DWORD)this,getProcAddress((ProcAddress<CBTHook>::LPFNMETHODVOID)&CBTHook::entryProc)),
mhHook(0)
{
HINSTANCE hProcessInstance=(HINSTANCE)::GetModuleHandle(0);
mhHook=::SetWindowsHookEx(WH_CBT,(HOOKPROC)getHookAddress(),hProcessInstance,0);
}
inline
CBTHook::~CBTHook()
{
if(!mhHook)return;
::UnhookWindowsHookEx(mhHook);
}
inline
CBTHook &CBTHook::operator=(const CBTHook &cbtHook)
{ // no implementation
return *this;
}
inline
DWORD CBTHook::getHookAddress(void)
{
return codeBase();
}
inline
LRESULT CBTHook::entryProc(int nCode,WPARAM wParam,LPARAM lParam)
{
LRESULT result;
::printf("[CBTHook::entryProc]\n");
if(nCode<0)return result=::CallNextHookEx(mhHook,nCode,wParam,lParam);
switch(nCode)
{
case HCBT_ACTIVATE :
result=handleActive(wParam,lParam);
break;
case HCBT_CLICKSKIPPED :
result=handleClickSkipped(wParam,lParam);
break;
case HCBT_CREATEWND :
result=handleCreateWnd(wParam,lParam);
break;
case HCBT_DESTROYWND :
result=handleDestroyWnd(wParam,lParam);
break;
case HCBT_KEYSKIPPED :
result=handleKeySkipped(wParam,lParam);
break;
case HCBT_MINMAX :
result=handleMinMax(wParam,lParam);
break;
case HCBT_MOVESIZE :
result=handleMoveSize(wParam,lParam);
break;
case HCBT_QS :
result=handleQs(wParam,lParam);
break;
case HCBT_SETFOCUS :
result=handleSetFocus(wParam,lParam);
break;
case HCBT_SYSCOMMAND :
result=handleSysCommand(wParam,lParam);
break;
}
return result;
}
// *** virtuals
inline
LRESULT CBTHook::handleActive(WPARAM wParam,LPARAM lParam)
{
return 0;
}
inline
LRESULT CBTHook::handleClickSkipped(WPARAM wParam,LPARAM lParam)
{
return 0;
}
inline
LRESULT CBTHook::handleCreateWnd(WPARAM wParam,LPARAM lParam)
{
return 0;
}
inline
LRESULT CBTHook::handleDestroyWnd(WPARAM wParam,LPARAM lParam)
{
return 0;
}
inline
LRESULT CBTHook::handleKeySkipped(WPARAM wParam,LPARAM lParam)
{
return 0;
}
inline
LRESULT CBTHook::handleMinMax(WPARAM wParam,LPARAM lParam)
{
return 0;
}
inline
LRESULT CBTHook::handleMoveSize(WPARAM wParam,LPARAM lParam)
{
return 0;
}
inline
LRESULT CBTHook::handleQs(WPARAM wParam,LPARAM lParam)
{
return 0;
}
inline
LRESULT CBTHook::handleSetFocus(WPARAM wParam,LPARAM lParam)
{
return 0;
}
inline
LRESULT CBTHook::handleSysCommand(WPARAM wParam,LPARAM lParam)
{
return 0;
}
// *********************************************************************************************
class WinCreateHook : public CBTHook
{
public:
WinCreateHook();
virtual ~WinCreateHook();
protected:
virtual LRESULT handleCreateWnd(WPARAM wParam,LPARAM lParam);
private:
};
inline
WinCreateHook::WinCreateHook()
{
}
inline
WinCreateHook::~WinCreateHook()
{
}
inline
LRESULT WinCreateHook::handleCreateWnd(WPARAM wParam,LPARAM lParam)
{
::printf("[WinCreateHook::handleCreateWnd]");
return 0;
}
// *********************************************************************************************
extern "C"
{
__declspec(dllimport) bool FAR PASCAL unHook(void);
__declspec(dllimport) bool FAR PASCAL setHook(void);
}
void main(int argc,char **argv)
{
// Library library("cbtdll.dll");
// HHOOK mhHook;
// mhHook=::SetWindowsHookEx(WH_CBT,(HOOKPROC)&cbtHookProc,0,0);
// mhHook=::SetWindowsHookEx(WH_CBT,(HOOKPROC)&cbtHookProc,library.getInstance(),0);
/*
if(!library.isOkay())
{
::printf("Library not found");
return;
}
if(!library.procAddress("_cbtHookProc"))
{
::printf("Address not found");
return;
}
mhHook=::SetWindowsHookEx(WH_CBT,(HOOKPROC)library.procAddress("cbtHookProc"),library.getInstance(),0);
*/
if(!setHook())return;
for(int index=0;index<120;index++)
{
yield();
::Sleep(250);
}
unHook();
// HINSTANCE hProcessInstance=(HINSTANCE)::GetModuleHandle(0);
// ::printf("main hInst=0x%08lx",hProcessInstance);
// cbtHookProc(0,0,0);
/*
// Event event;
CBTHook cbtHook;
for(;;)
{
yield();
::Sleep(250);
}
// messageLoop();
// event.waitEvent();
*/
return;
}
int messageLoop(void)
{
MSG msg;
while(::GetMessage(&msg,NULL,0,0))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
return msg.wParam;
}
void yield()
{
MSG msg;
if(::PeekMessage(&msg,0,0,0,PM_REMOVE))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
}
File inFile;
File outFile;
String strLine;
String midiLine;
String saveLine;
String www;
www="www.burksstudios.com";
if(!inFile.open("d:\\midi.txt","rb"))return false;
outFile.open("d:\\getpage.txt","wb");
while(inFile.readLine(strLine))
{
midiLine=strLine.betweenString('"','"');
if(midiLine.isNull())continue;
Profile::makeFileName(midiLine,saveLine);
outFile.writeLine(www+String(" ")+String("http://")+www+String("/jazz/")+midiLine+String(" d:\\")+saveLine);
}
return 1;
/*
#include <midiseq/midiout.hpp>
#include <midiseq/noteon.hpp>
#include <midiseq/ProgramChange.hpp>
void main(int argc,char **argv)
{
MIDIOutputDevice midiOut;
NoteOn noteOn(PureNote(65,70));
if(!midiOut.openDevice())return;
for(int prog=0;prog<128;prog++)
{
midiOut.midiEvent(ProgramChange(prog).getEvent(0,16));
PureEvent &midiEvent=noteOn.getEvent();
midiOut.midiEvent(midiEvent);
::Sleep(250);
}
// PureEvent getEvent(BYTE deltaTime=0,BYTE channel=0)const;
// PureEvent(BYTE eventType,DWORD deltaTime,BYTE channel,BYTE firstData,BYTE secondData,DWORD tempo=0);
midiOut.closeDevice();
return;
}
*/
/*
35 Acoustic Bass Drum 59 Ride Cymbal 2
36 Bass Drum 1 60 Hi Bongo
37 Side Stick 61 Low Bongo
38 Acoustic Snare 62 Mute Hi Conga
39 Hand Clap 63 Open Hi Conga
40 Electric Snare 64 Low Conga
41 Low Floor Tom 65 High Timbale
42 Closed Hi-Hat 66 Low Timbale
43 High Floor Tom 67 High Agogo
44 Pedal Hi-Hat 68 Low Agogo
45 Low Tom 69 Cabasa
46 Open Hi-Hat 70 Maracas
47 Low-Mid Tom 71 Short Whistle
48 Hi-Mid Tom 72 Long Whistle
49 Crash Cymbal 1 73 Short Guiro
50 High Tom 74 Long Guiro
51 Ride Cymbal 1 75 Claves
52 Chinese Cymbal 76 Hi Wood Block
53 Ride Bell 77 Low Wood Block
54 Tambourine 78 Mute Cuica
55 Splash Cymbal 79 Open Cuica
56 Cowbell 80 Mute Triangle
57 Crash Cymbal 2 81 Open Triangle
58 Vibraslap
*/
/*
bool ClassMapper::createClass(const String &packageName,const String &className,const String &strPathMapFile,const String &strPathTable)
{
File inFile;
File outFile;
String strLine;
String name;
String value;
String methodName;
Block<NameValuePair> variables;
int errors=0;
if(!loadMapping(strPathMapFile))return false;
if(!inFile.open(strPathTable,"rb"))return false;
while(true)
{
inFile.readLine(strLine);
if(strLine.isNull())break;
name=strLine.betweenString(' ',' ');
name=makeHungarian(name);
value=strLine.betweenString(' ',0).betweenString(' ',' ');
if(!mapType(value,value))
{
printf("Don't know how to map %s\n",value.str());
errors++;
continue;
}
variables.insert(&NameValuePair(name,value));
}
inFile.close();
if(errors)return false;
if(!variables.size())return false;
if(!outFile.open(className+String(".java"),"wb"))return false;
if(!packageName.isNull())outFile.writeLine(String("package ")+packageName);
outFile.writeLine("\t");
outFile.writeLine("\t");
outFile.writeLine(String("public class ")+className);
outFile.writeLine("{");
for(int index=0;index<variables.size();index++)
{
NameValuePair &nameValuePair=variables[index];
outFile.writeLine(String(" private ")+nameValuePair.getValue()+String(" ")+nameValuePair.getName()+String(";"));
}
for(index=0;index<variables.size();index++)
{
NameValuePair &nameValuePair=variables[index];
outFile.writeLine(String(" public ")+nameValuePair.getValue()+String(" ")+makeAccessor(nameValuePair.getName())+String("()"));
outFile.writeLine(" {");
outFile.writeLine(String(" return ")+nameValuePair.getName()+String(";"));
outFile.writeLine(" }");
outFile.writeLine(String(" public void ")+makeMutator(nameValuePair.getName())+String("(")+nameValuePair.getValue()+String(" ")+nameValuePair.getName()+String(")"));
outFile.writeLine(" {");
outFile.writeLine(String(" this.")+nameValuePair.getName()+String("=")+nameValuePair.getName()+String(";"));
outFile.writeLine(" }");
}
outFile.writeLine("};");
outFile.close();
printf("class generation completed with %d errors\n",errors);
return true;
}
*/
/*
bool ClassMapper::createResultClass(const String &packageName,const String &className,const String &instanceName,const String &strPathMapFile,const String &strPathTable)
{
File inFile;
File outFile;
String strLine;
String name;
String value;
String methodName;
Block<NameValuePair> variables;
Block<NameValuePair> originals;
int errors=0;
if(!loadMapping(strPathMapFile))return false;
if(!inFile.open(strPathTable,"rb"))return false;
while(true)
{
inFile.readLine(strLine);
if(strLine.isNull())break;
name=strLine.betweenString(' ',' ');
value=strLine.betweenString(' ',0).betweenString(' ',' ');
if(!mapType(value,value))
{
printf("Don't know how to map %s\n",value.str());
errors++;
continue;
}
variables.insert(&NameValuePair(makeHungarian(name),value));
originals.insert(&NameValuePair(name,value));
}
inFile.close();
if(errors)return false;
if(!variables.size())return false;
if(!outFile.open(className+String("RS")+String(".java"),"wb"))return false;
if(!packageName.isNull())outFile.writeLine(String("package ")+packageName);
outFile.writeLine("\t");
outFile.writeLine("\t");
outFile.writeLine("public void processResult()");
outFile.writeLine("{");
outFile.writeLine(String(" ")+className+String(" ")+instanceName+String(";"));
outFile.writeLine(" ResultSet rs;");
outFile.writeLine("// fill in the blanks");
for(int index=0;index<variables.size();index++)
{
NameValuePair &original=originals[index];
NameValuePair &variable=variables[index];
outFile.writeLine(String(" ")+instanceName+String(".")+makeMutator(variable.getName())+String("(rs.get")+makeFirstUpper(variable.getValue())+String("(\"")+original.getName()+String("\"));"));
}
outFile.writeLine("}");
outFile.close();
printf("result set mapping completed with %d errors\n",errors);
return true;
}
*/
ProcessAPI processAPI;
ProcessInfoList processInfoList;
processAPI.enumProcesses(processInfoList);
for(int index=0;index<processInfoList.size();index++)
{
ProcessInfo &processInfo=processInfoList[index];
::OutputDebugString(String(String("ProcessID:")+processInfo.processID().toString()+String("\n")).str());
ModuleInfoList &moduleInfoList=processInfo;
for(int modIndex=0;modIndex<moduleInfoList.size();modIndex++)
{
if(!modIndex)::OutputDebugString(String(moduleInfoList[modIndex].moduleFileName()+String("\n")).str());
else ::OutputDebugString(String(String(" ")+moduleInfoList[modIndex].moduleFileName()+String("\n")).str());
}
::OutputDebugString("************************************************\n");
}
#include <common/file.hpp>
#include <common/library.hpp>
#include <common/filetime.hpp>
#include <common/systime.hpp>
#include <common/process.hpp>
#include <common/pview.hpp>
#include <common/filemap.hpp>
#include <common/openfile.hpp>
#include <image/pehdr.hpp>
#include <psapint/psapi.hpp>
void displayMemory();
void displayProcesses();
void showModule(const String &pathFileName);
void showVersionInfo(const ModuleInfo &moduleInfo,String &moduleBaseName,String &moduleFileName);
void displayAutoRuns();
int main(int argc,char **argv)
{
return 0;
}
void displayAutoRuns()
{
}
void displayProcesses()
{
ProcessIDList processIDList;
ProcessAPI processAPI;
ModuleInfoList moduleInfoList;
processAPI.enumProcesses(processIDList);
for(int index=0;index<processIDList.size();index++)
{
const ProcessID &processID=processIDList[index];
processAPI.enumProcessModules(processID,moduleInfoList);
for(int modIndex=0;modIndex<moduleInfoList.size();modIndex++)
{
String moduleBaseName;
String moduleFileName;
const ModuleInfo &moduleInfo=moduleInfoList[modIndex];
processAPI.getModuleBaseName(processID,moduleInfo.module(),moduleBaseName);
processAPI.getModuleFileName(processID,moduleInfo.module(),moduleFileName);
if(!modIndex)printf("Pid:%s\t%s\t\t%s\n",processID.toString().str(),moduleBaseName.str(),moduleFileName.str());
else printf("\t\t\t%s\t\t%s\n",moduleBaseName.str(),moduleFileName.str());
showVersionInfo(moduleInfo,moduleBaseName,moduleFileName);
}
}
}
void showVersionInfo(const ModuleInfo &moduleInfo,String &moduleBaseName,String &moduleFileName)
{
HGLOBAL hGlobal;
if(moduleBaseName.isNull()&&moduleFileName.isNull())
{
printf("Cannot open module :0x%08lx\n",moduleInfo.module());
return;
}
HRSRC hRsrc=::FindResource(moduleInfo.module(),"VERSION",RT_VERSION);
if(!hRsrc)
{
printf("Module 0x%08lx does not contain version information\n",moduleInfo.module());
return;
}
hGlobal=::LoadResource(moduleInfo.module(),hRsrc);
}
void showModule(const String &moduleFileName)
{
PEHeader peHeader;
Block<ImageImportDescriptor> imageImportDescriptors;
ImageSectionHeader imageSectionHeader;
FileHandle inFile(moduleFileName,FileHandle::Read);
if(!inFile.isOkay())return;
FileMap inMap(inFile);
PureViewOfFile view(inMap);
peHeader<<view;
ImageSectionHeaders &imageSectionHeaders=(ImageSectionHeaders&)peHeader;
for(int index=0;index<imageSectionHeaders.size();index++)
{
printf("\t\t\t\t%s\n",imageSectionHeaders[index].name().str());
}
// peHeader.loadImageImportDescriptors(imageImportDescriptors,imageSectionHeader,view);
}
void displayMemory()
{
MEMORYSTATUS memoryStatus;
HANDLE hCurrentProcess(::GetCurrentProcess());
FILETIME ftCreationTime;
FILETIME ftExitTime;
FILETIME ftKernelTime;
FILETIME ftUserTime;
SystemTime creationTime;
SystemTime exitTime;
SystemTime kernelTime;
SystemTime userTime;
::memset(&memoryStatus,0,sizeof(MEMORYSTATUS));
memoryStatus.dwLength=sizeof(MEMORYSTATUS);
::GlobalMemoryStatus(&memoryStatus);
::printf("Memory Status\n");
::printf("-------------\n");
::printf("Percent In Use:%ld\n",memoryStatus.dwMemoryLoad);
::printf("Physical Memory:%ld\n",memoryStatus.dwTotalPhys);
::printf("Physical Available:%ld\n",memoryStatus.dwAvailPhys);
::printf("Page File Size:%ld (bytes)\n",memoryStatus.dwAvailPageFile);
::printf("Total Virtual:%ld (bytes)\n",memoryStatus.dwTotalVirtual);
::printf("Available Virtual:%ld (bytes)\n",memoryStatus.dwAvailVirtual);
::GetProcessTimes(hCurrentProcess,&ftCreationTime,&ftExitTime,&ftKernelTime,&ftUserTime);
creationTime=FileTime(ftCreationTime);
exitTime=FileTime(ftExitTime);
kernelTime=FileTime(ftKernelTime);
userTime=FileTime(ftUserTime);
::printf("Process Times\n");
::printf("Creation Time:%s\n",creationTime.toString().str());
::printf("Exit Time:%s\n",exitTime.toString().str());
::printf("Kernel Time:%02d:%02d:%02d.%03d\n",kernelTime.hour(),kernelTime.minute(),kernelTime.second(),kernelTime.milliseconds());
::printf("User Time:%02d:%02d:%02d.%03d\n",userTime.hour(),userTime.minute(),userTime.second(),userTime.milliseconds());
::printf("\n");
}

179
proto/source/ANGLES.HPP Normal file
View File

@@ -0,0 +1,179 @@
#ifndef _PROTO_ANGLES_HPP_
#define _PROTO_ANGLES_HPP_
class Angles
{
public:
Angles(void);
virtual ~Angles();
int angle360(void)const;
int angle180(void)const;
int angle120(void)const;
int angle090(void)const;
int angle060(void)const;
int angle045(void)const;
int angle030(void)const;
int angle020(void)const;
int angle015(void)const;
int angle010(void)const;
int angle005(void)const;
int angle002(void)const;
int angle001(void)const;
int angle000(void)const;
int angleHalfFOV(void)const;
int screenWidth(void)const;
void screenWidth(int screenWidth);
private:
void setAngles(void);
int mAngle360;
int mAngle180;
int mAngle120;
int mAngle090;
int mAngle060;
int mAngle045;
int mAngle030;
int mAngle020;
int mAngle015;
int mAngle010;
int mAngle005;
int mAngle002;
int mAngle001;
int mAngle000;
int mScreenWidth;
};
inline
Angles::Angles(void)
: mAngle360(0), mAngle180(0), mAngle120(0), mAngle090(0), mAngle060(0), mAngle045(0),
mAngle030(0), mAngle020(0), mAngle015(0), mAngle010(0), mAngle005(0), mAngle002(0),
mAngle001(0), mAngle000(0), mScreenWidth(0)
{
}
inline
Angles::~Angles()
{
}
inline
int Angles::screenWidth(void)const
{
return mScreenWidth;
}
inline
void Angles::screenWidth(int screenWidth)
{
mScreenWidth=screenWidth;
setAngles();
}
inline
void Angles::setAngles(void)
{
mAngle360=screenWidth()*360/60;
mAngle180=angle360()/2;
mAngle120=angle360()/3;
mAngle090=angle360()/4;
mAngle060=angle360()/6;
mAngle045=angle360()/8;
mAngle030=angle360()/12;
mAngle020=angle360()/18;
mAngle015=angle360()/24;
mAngle010=angle360()/36;
mAngle005=angle360()/72;
mAngle002=angle360()/180;
mAngle001=angle360()/360;
mAngle000=0;
}
inline
int Angles::angle360(void)const
{
return mAngle360;
}
inline
int Angles::angle180(void)const
{
return mAngle180;
}
inline
int Angles::angle120(void)const
{
return mAngle120;
}
inline
int Angles::angle090(void)const
{
return mAngle090;
}
inline
int Angles::angle060(void)const
{
return mAngle060;
}
inline
int Angles::angle045(void)const
{
return mAngle045;
}
inline
int Angles::angle030(void)const
{
return mAngle030;
}
inline
int Angles::angle020(void)const
{
return mAngle020;
}
inline
int Angles::angle015(void)const
{
return mAngle015;
}
inline
int Angles::angle010(void)const
{
return mAngle010;
}
inline
int Angles::angle005(void)const
{
return mAngle005;
}
inline
int Angles::angle002(void)const
{
return mAngle002;
}
inline
int Angles::angle001(void)const
{
return mAngle001;
}
inline
int Angles::angle000(void)const
{
return mAngle000;
}
inline
int Angles::angleHalfFOV(void)const
{
return angle030();
}
#endif

BIN
proto/source/ARROWD.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

BIN
proto/source/ARROWL.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

BIN
proto/source/ARROWR.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

BIN
proto/source/ARROWU.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

11
proto/source/ASMUTIL.HPP Normal file
View File

@@ -0,0 +1,11 @@
#ifndef _PROTO_ASMUTIL_HPP_
#define _PROTO_ASMUTIL_HPP_
class RGB888;
extern "C"
{
resampleClipRow(RGB888 *lpIn,RGB888 *lpOut,DWORD inLen,DWORD outLen,DWORD outClamp);
resampleClipCol(RGB888 *lpIn,RGB888 *lpOut,DWORD inLen,DWORD inWidth,DWORD outLen,DWORD outWidth,DWORD outClamp);
}
#endif

View File

@@ -0,0 +1,18 @@
#include <proto/AdviseSink.hpp>
AdviseSink::AdviseSink(void)
{
}
AdviseSink::~AdviseSink()
{
}
HRESULT AdviseSink::ImageNotify(VARIANT *pVariant)
{
CallbackData cbData(0,(LPARAM)pVariant);
mAdviseHandler.callback(cbData);
::VariantClear(pVariant);
return ComResult::Success;
}

View File

@@ -0,0 +1,77 @@
#ifndef _COM_ADVISESINK_HPP_
#define _com_ADVISESINK_HPP_
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0400
#endif
#ifndef _ATL_APARTMENT_THREADED
#define _ATL_APARTMENT_THREADED
#endif
#ifndef _COM_ATLBASE_HPP_
#include <com/atlbase.hpp>
#endif
#ifndef _COM_ATLMODULE_HPP_
#include <com/atlmod.hpp>
#endif
#ifndef _COM_ATLCOM_HPP_
#include <com/atlcom.hpp>
#endif
#ifndef _COM_COM_HPP_
#include <com/com.hpp>
#endif
#ifndef _COM_VARIANT_HPP_
#include <com/variant.hpp>
#endif
#ifndef _COM_RESULT_HPP_
#include <com/result.hpp>
#endif
// GENERIC CONNECTION POINT INTERFACE
// INHERIT FROM THIS CLASS, PASSING IN...
// 1) THE NAME OF THE CONNECTION POINT INTERFACE CLASS (FROM IDL FILE)
// 2) POINTER TO THE IID FOR THE CONNECTION POINT INTERFACE
// 3) POINTER TO THE LIBID FOR THE CONNECTION POINT INTERFACE
// THEN PROVIDE THE VIRTUAL FUNCTION(S) DESCRIBED IN THE IDL THAT THE CONNECTION POINT WILL CALL
// (IE)
// IDL CODE
// interface IImageNotify : IDispatch
// {
// [id(1), helpstring("method ImageNotify")]
// HRESULT ImageNotify(VARIANT *pVariant);
// };
// C++ CODE
// class ImageAdviseHandler : public AdviseSink<IImageNotify,&IID_IImageNotify,&LIBID_REMOTEPSEVENTLib>
// {
// ...
// virtual HRESULT ImageNotify(VARIANT *pVariant);
// ...
// }
template <class U,const IID *V,const GUID *W>
class AdviseSink :
public CComObjectRootEx<CComMultiThreadModel>,
public IDispatchImpl<U,V,W>
{
public:
AdviseSink(void);
virtual ~AdviseSink();
BEGIN_COM_MAP(AdviseSink)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(U)
END_COM_MAP()
private:
};
template <class U,const IID *V,const GUID *W>
inline
AdviseSink<U,V,W>::AdviseSink(void)
{
}
template <class U,const IID *V,const GUID *W>
inline
AdviseSink<U,V,W>::~AdviseSink()
{
}
#endif

BIN
proto/source/BLOAD.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

BIN
proto/source/BSAVE.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

107
proto/source/CFACTORY.CPP Normal file
View File

@@ -0,0 +1,107 @@
#include <proto/cfactory.hpp>
#include <proto/sobj.hpp>
//#include <proto/guids.hpp>
#pragma warning(disable:4355)
CFSimpleObject::CFSimpleObject(PIUnknown &pUnkOuter,SmartPointer<DLLServer> &server)
: mImpIClassFactory(SmartPointer<CFSimpleObject>(this),pUnkOuter,server), mRefCount(0),
mUnkOuter(pUnkOuter), mDLLServer(server)
{
}
CFSimpleObject::~CFSimpleObject()
{
}
ULONG __stdcall CFSimpleObject::AddRef(void)
{
mRefCount++;
return mRefCount;
}
ULONG __stdcall CFSimpleObject::Release(void)
{
mRefCount--;
if(0==mRefCount)
{
if(mDLLServer.isOkay())mDLLServer->removeObject();
mRefCount++;
delete this;
}
return mRefCount;
}
HRESULT __stdcall CFSimpleObject::QueryInterface(REFIID riid,PPVOID ppv)
{
HRESULT hr(E_NOINTERFACE);
*ppv=0;
if(IID_IUnknown==riid)*ppv=this;
else if(IID_IClassFactory==riid)*ppv=&mImpIClassFactory;
if(0!=*ppv)((LPUNKNOWN)*ppv)->AddRef(),hr=NOERROR;
return hr;
}
CImpIClassFactory::CImpIClassFactory(SmartPointer<CFSimpleObject> &pBackObj,PIUnknown &pUnkOuter,SmartPointer<DLLServer> &server)
: mRefCount(0), mBackObj(pBackObj), mDLLServer(server)
{
if(!pUnkOuter.isOkay())mUnkOuter=PIUnknown((IUnknown*)((CFSimpleObject*)pBackObj));
else mUnkOuter=pUnkOuter;
}
CImpIClassFactory::~CImpIClassFactory()
{
}
HRESULT __stdcall CImpIClassFactory::QueryInterface(REFIID riid,PPVOID ppv)
{
return mUnkOuter->QueryInterface(riid,ppv);
}
ULONG __stdcall CImpIClassFactory::AddRef(void)
{
mRefCount++;
return mUnkOuter->AddRef();
}
ULONG __stdcall CImpIClassFactory::Release(void)
{
mRefCount--;
return mUnkOuter->Release();
}
HRESULT __stdcall CImpIClassFactory::CreateInstance(IUnknown *pUnkOuter,REFIID riid,PPVOID ppv)
{
HRESULT hr(E_FAIL);
SmartPointer<CSimpleObject> simpleObject;
*ppv=0;
if(pUnkOuter&&IID_IUnknown!=riid)hr=CLASS_E_NOAGGREGATION;
else
{
simpleObject=::new CSimpleObject(PIUnknown(pUnkOuter),mDLLServer);
simpleObject.disposition(PointerDisposition::Assume);
if(simpleObject.isOkay())
{
mDLLServer->addObject();
hr=simpleObject->QueryInterface(riid,ppv);
if(FAILED(hr))
{
mDLLServer->removeObject();
simpleObject.disposition(PointerDisposition::Delete);
simpleObject.destroy();
}
}
else hr=E_OUTOFMEMORY;
}
return hr;
}
HRESULT __stdcall CImpIClassFactory::LockServer(BOOL lock)
{
HRESULT hr(NOERROR);
if(lock)mDLLServer->addLock();
else mDLLServer->removeLock();
return hr;
}

49
proto/source/CFACTORY.HPP Normal file
View File

@@ -0,0 +1,49 @@
#ifndef _PROTO_CCLASSFACTORY_HPP_
#define _PROTO_CCLASSFACTORY_HPP_
#ifndef _COM_OLE2_HPP_
#include <com/ole2.hpp>
#endif
#ifndef _COMMON_SMARTPOINTER_HPP_
#include <common/pointer.hpp>
#endif
#ifndef _PROTO_DLLSERVER_HPP_
#include <proto/dllserve.hpp>
#endif
class CFSimpleObject;
class CImpIClassFactory : public IClassFactory
{
public:
CImpIClassFactory(SmartPointer<CFSimpleObject> &pBackObj,PIUnknown &pUnkOuter,SmartPointer<DLLServer> &server);
~CImpIClassFactory();
HRESULT __stdcall QueryInterface(REFIID riid,PPVOID ppv);
ULONG __stdcall AddRef(void);
ULONG __stdcall Release(void);
HRESULT __stdcall CreateInstance(IUnknown *pUnkOuter,REFIID riid,PPVOID ppv);
HRESULT __stdcall LockServer(BOOL lock);
private:
ULONG mRefCount;
SmartPointer<CFSimpleObject> mBackObj;
SmartPointer<DLLServer> mDLLServer;
PIUnknown mUnkOuter;
};
class CFSimpleObject : public IUnknown
{
public:
friend CImpIClassFactory;
CFSimpleObject(PIUnknown &pUnkOuter,SmartPointer<DLLServer> &server);
~CFSimpleObject();
HRESULT __stdcall QueryInterface(REFIID riid,PPVOID ppv);
ULONG __stdcall AddRef(void);
ULONG __stdcall Release(void);
private:
CImpIClassFactory mImpIClassFactory;
SmartPointer<DLLServer> mDLLServer;
PIUnknown mUnkOuter;
ULONG mRefCount;
};
typedef CFSimpleObject *PCFSimpleObject;
#endif

220
proto/source/CHARFORM.HPP Normal file
View File

@@ -0,0 +1,220 @@
#ifndef _PROTO_CHARFORMAT_HPP_
#define _PROTO_CHARFORMAT_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_RICHEDIT_HPP_
#include <common/richedit.hpp>
#endif
#ifndef _COMMON_STRING_HPP_
#include <common/string.hpp>
#endif
#ifndef _COMMON_RGBCOLOR_HPP_
#include <common/rgbcolor.hpp>
#endif
class CharFormat : private CHARFORMAT
{
public:
enum Mask{MaskBold=CFM_BOLD,MaskCharSet=CFM_CHARSET,MaskColor=CFM_COLOR,MaskFace=CFM_FACE,
MaskItalic=CFM_ITALIC,MaskOffset=CFM_OFFSET,MaskProtected=CFM_PROTECTED,
MaskSize=CFM_SIZE,MaskStrikeout=CFM_STRIKEOUT,MaskUnderline=CFM_UNDERLINE};
enum Effects{EffectAutoColor=CFE_AUTOCOLOR,EffectBold=CFE_BOLD,EffectItalic=CFE_ITALIC,
EffectStrikeout=CFE_STRIKEOUT,EffectUnderline=CFE_UNDERLINE,EffectProtected=CFE_PROTECTED};
CharFormat(void);
CharFormat(const CharFormat &someCharFormat);
virtual ~CharFormat();
CharFormat &operator=(const CharFormat &someCharFormat);
BOOL operator==(const CharFormat &someCharFormat)const;
operator CHARFORMAT &(void);
DWORD mask(void)const;
void mask(DWORD mask);
DWORD effects(void)const;
void effects(DWORD effects);
LONG yHeight(void)const;
void yHeight(LONG height);
LONG yOffset(void)const;
void yOffset(LONG offset);
RGBColor textColor(void)const;
void textColor(RGBColor textColor);
BYTE charSet(void)const;
void charSet(BYTE charSet);
BYTE pitchAndFamily(void)const;
void pitchAndFamily(BYTE pitchAndFamily);
String faceName(void)const;
void faceName(const String &faceName);
private:
void setZero(void);
void initLength(void);
};
#endif
inline
CharFormat::CharFormat(void)
{
setZero();
}
inline
CharFormat::CharFormat(const CharFormat &someCharFormat)
{
initLength();
*this=someCharFormat;
}
inline
CharFormat::~CharFormat()
{
}
inline
CharFormat &CharFormat::operator=(const CharFormat &someCharFormat)
{
mask(someCharFormat.mask());
effects(someCharFormat.effects());
yHeight(someCharFormat.yHeight());
yOffset(someCharFormat.yOffset());
textColor(someCharFormat.textColor());
charSet(someCharFormat.charSet());
pitchAndFamily(someCharFormat.pitchAndFamily());
faceName(someCharFormat.faceName());
return *this;
}
inline
BOOL CharFormat::operator==(const CharFormat &someCharFormat)const
{
return (mask()==someCharFormat.mask()&&
effects()==someCharFormat.effects()&&
yHeight()==someCharFormat.yHeight()&&
yOffset()==someCharFormat.yOffset()&&
textColor()==someCharFormat.textColor()&&
charSet()==someCharFormat.charSet()&&
pitchAndFamily()&&someCharFormat.pitchAndFamily()&&
faceName()==someCharFormat.faceName());
}
inline
CharFormat::operator CHARFORMAT &(void)
{
return *this;
}
inline
DWORD CharFormat::mask(void)const
{
return CHARFORMAT::dwMask;
}
inline
void CharFormat::mask(DWORD mask)
{
CHARFORMAT::dwMask=mask;
}
inline
DWORD CharFormat::effects(void)const
{
return CHARFORMAT::dwEffects;
}
inline
void CharFormat::effects(DWORD effects)
{
CHARFORMAT::dwEffects=effects;
}
inline
LONG CharFormat::yHeight(void)const
{
return CHARFORMAT::yHeight;
}
inline
void CharFormat::yHeight(LONG height)
{
CHARFORMAT::yHeight=height;
}
inline
LONG CharFormat::yOffset(void)const
{
return CHARFORMAT::yOffset;
}
inline
void CharFormat::yOffset(LONG yOffset)
{
CHARFORMAT::yOffset=yOffset;
}
inline
RGBColor CharFormat::textColor(void)const
{
return CHARFORMAT::crTextColor;
}
inline
void CharFormat::textColor(RGBColor textColor)
{
CHARFORMAT::crTextColor=(COLORREF)textColor;
}
inline
BYTE CharFormat::charSet(void)const
{
return CHARFORMAT::bCharSet;
}
inline
void CharFormat::charSet(BYTE charSet)
{
CHARFORMAT::bCharSet=charSet;
}
inline
BYTE CharFormat::pitchAndFamily(void)const
{
return CHARFORMAT::bPitchAndFamily;
}
inline
void CharFormat::pitchAndFamily(BYTE pitchAndFamily)
{
CHARFORMAT::bPitchAndFamily=pitchAndFamily;
}
inline
String CharFormat::faceName(void)const
{
return CHARFORMAT::szFaceName;
}
inline
void CharFormat::faceName(const String &faceName)
{
WORD strLength(faceName.length());
if(faceName.isNull()||strLength>=LF_FACESIZE)return;
::memcpy(szFaceName,(char*)(String&)faceName,strLength);
szFaceName[strLength]=0;
}
inline
void CharFormat::setZero(void)
{
initLength();
mask(0);
effects(0);
yHeight(0);
yOffset(0);
textColor(RGBColor(0,0,0));
charSet(0);
pitchAndFamily(0);
faceName("Arial");
}
inline
void CharFormat::initLength(void)
{
CHARFORMAT::cbSize=sizeof(CHARFORMAT);
}

157
proto/source/CLIENT.CPP Normal file
View File

@@ -0,0 +1,157 @@
#include <iostream.h>
#include <common/windows.hpp>
#include <common/openfile.hpp>
#include <proto/pakentry.hpp>
#include <proto/mediapak.hpp>
#include <sample/wave.hpp>
#include <sample/purewave.hpp>
// create(mediapakfilename)
// add(mediapak,filename,type,id)
// remove(mediapak,id)
// display(mediapakfilename)
void displayUsage(void);
BOOL handleAdd(const String &strCommand);
BOOL handleRemove(const String &strCommand);
BOOL handleList(const String &strCommand);
BOOL handleCreate(const String &strCommand);
//int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE /*hPrevInstance*/,LPSTR /*lpszCmdLine*/,int /*nCmdShow*/)
void main(int argc,char **argv)
{
String strCommandLine;
String strCommand;
if(1==argc){displayUsage();return;}
strCommandLine=argv[1];
strCommand=strCommandLine.betweenString(0,'(');
if(strCommand.isNull())strCommand=strCommandLine;
if(strCommand==String("add"))handleAdd(strCommandLine);
else if(strCommand==String("remove"))handleRemove(strCommandLine);
else if(strCommand==String("list"))handleList(strCommandLine);
else if(strCommand==String("create"))
{
if(handleCreate(strCommandLine))cout << "creation completed" << endl;
else cout << "creation failed"<< endl;
}
else displayUsage();
return;
}
BOOL handleAdd(const String &strCommand)
{
String strPathMediaPak;
String strPathFileName;
String strID;
String strType;
MediaPak mediaPak;
PakEntry pakEntry;
GlobalData<BYTE> mediaData;
FileHandle openFile;
strPathMediaPak=strCommand.betweenString('(',',');
strPathFileName=strCommand.betweenString(',',',');
strType=strCommand.betweenString(',',')').betweenString(',',',');
strID=strCommand.betweenString(',',')').betweenString(',',0).betweenString(',',0);
if(strPathMediaPak.isNull())return FALSE;
if(strPathFileName.isNull())return FALSE;
if(strID.isNull())return FALSE;
if(strType.isNull())return FALSE;
mediaPak.open(strPathMediaPak);
if(strType==String("SOUND"))pakEntry.type(PakEntry::Sound);
else if(strType==String("BITMAP"))pakEntry.type(PakEntry::Bitmap);
else pakEntry.type(PakEntry::Blob);
openFile.open(strPathFileName);
mediaData.size(openFile.size());
openFile.read((BYTE*)&mediaData[0],mediaData.size());
pakEntry.name(strPathFileName);
pakEntry.id(::atoi(strID));
pakEntry.rawData(mediaData);
mediaPak.add(pakEntry);
return TRUE;
}
BOOL handleRemove(const String &strCommand)
{
return FALSE;
}
BOOL handleList(const String &strCommand)
{
String pathMediaPak;
String strType;
MediaPak mediaPak;
PakEntry pakEntry;
pathMediaPak=strCommand.betweenString('(',')');
if(pathMediaPak.isNull())return FALSE;
if(!mediaPak.open(pathMediaPak))return FALSE;
for(int index=0;index<mediaPak.entries();index++)
{
mediaPak.getEntry(pakEntry,index);
if(PakEntry::Sound==pakEntry.type())strType="SOUND";
else if(PakEntry::Bitmap==pakEntry.type())strType="BITMAP";
else strType="BLOB";
cout << pakEntry.name() << " " << strType << " id:" << pakEntry.id() << endl;
}
return FALSE;
}
BOOL handleCreate(const String &strCommand)
{
String pathMediaPak;
MediaPak mediaPak;
pathMediaPak=strCommand.betweenString('(',')');
if(pathMediaPak.isNull())return FALSE;
return mediaPak.open(pathMediaPak,TRUE);
}
void displayUsage(void)
{
cout << "USAGE: mediapak add(pathmediapak,pathfilename,type,id) type=SOUND|BITMAP|BLOB" << endl;
cout << " delete(pathmediapak,id)" << endl;
cout << " list(pathmediapak)" << endl;
cout << " create(pathmediapak)" << endl;
return;
}
#if 0
MediaPak mediaPak;
PakEntry pakEntry;
GlobalData<BYTE> soundData;
FileHandle openFile;
WaveForm waveForm;
mediaPak.open("c:\\multimed.pak",TRUE);
pakEntry.type(PakEntry::Sound);
openFile.open("C:\\GAMES\\DOOM2\\DSTELEPT.WAV");
soundData.size(openFile.size());
openFile.read((BYTE*)soundData,soundData.size());
pakEntry.name("DSTELEPT");
pakEntry.id(0);
pakEntry.rawData(soundData);
mediaPak.add(pakEntry);
openFile.open("C:\\GAMES\\DOOM2\\DSPISTOL.WAV");
soundData.size(openFile.size());
openFile.read((BYTE*)soundData,soundData.size());
pakEntry.name("DSPISTOL");
pakEntry.id(0);
pakEntry.rawData(soundData);
mediaPak.add(pakEntry);
mediaPak.open("c:\\multimed.pak");
if(!mediaPak.getEntry(waveForm,0))return FALSE;
PureWave pureWave;
pureWave.play(waveForm,DeviceHandler::Wait);
mediaPak.close();
#endif

BIN
proto/source/CLIP.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 B

52
proto/source/COMMAND.CPP Normal file
View File

@@ -0,0 +1,52 @@
#include <proto/command.hpp>
void CommandLine::createCommands(String commandLine)
{
// String commandLine(::GetCommandLine());
char *strPtr=(char*)commandLine;
mBlockCmds.remove();
strPtr=::strtok(commandLine," \0");
if(!strPtr)return;
mBlockCmds.insert(&String(strPtr));
while(TRUE)
{
strPtr=::strtok(0," \0");
if(!strPtr)break;
mBlockCmds.insert(&String(strPtr));
}
}
String CommandLine::argument(void)const
{
if(!mBlockCmds.size())return String();
return const_cast<Block<String>&>(mBlockCmds)[mArgIndex];
}
BOOL CommandLine::isOption(void)const
{
if(!mBlockCmds.size())return FALSE;
String strArgument(const_cast<Block<String>&>(mBlockCmds)[mArgIndex]);
if(strArgument.isNull()||*(strArgument)!='-')return FALSE;
return TRUE;
}
String CommandLine::option(void)const
{
String optionString;
if(!mBlockCmds.size())return String();
optionString=const_cast<Block<String>&>(mBlockCmds)[mArgIndex];
if(optionString.isNull()||*(optionString)!='-'||optionString.length()<2)return String();
return String(*((char*)optionString+1));
}
String CommandLine::optionArg(void)const
{
String optionString;
if(!mBlockCmds.size())return String();
optionString=const_cast<Block<String>&>(mBlockCmds)[mArgIndex];
if(optionString.isNull()||*(optionString)!='-'||optionString.length()<=2)return String();
return String(((char*)optionString+2));
}

75
proto/source/COMMAND.HPP Normal file
View File

@@ -0,0 +1,75 @@
#ifndef _PROTO_COMMANDLINE_HPP_
#define _PROTO_COMMANDLINE_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_BLOCK_HPP_
#include <common/block.hpp>
#endif
#ifndef _COMMON_STRING_HPP_
#include <common/string.hpp>
#endif
class CommandLine
{
public:
CommandLine(String commandLine=::GetCommandLine());
virtual ~CommandLine();
BOOL operator++(void);
BOOL operator++(int postFixDummy);
BOOL operator--(void);
BOOL operator--(int postFixDummy);
String argument(void)const;
String option(void)const;
String optionArg(void)const;
BOOL isOption(void)const;
private:
void createCommands(String commandLine);
Block<String> mBlockCmds;
int mArgIndex;
};
inline
CommandLine::CommandLine(String commandLine)
: mArgIndex(0)
{
createCommands(commandLine);
}
inline
CommandLine::~CommandLine()
{
}
inline
BOOL CommandLine::operator++(void)
{
if(mArgIndex+1>=mBlockCmds.size())return FALSE;
mArgIndex++;
return TRUE;
}
inline
BOOL CommandLine::operator--(void)
{
if(mArgIndex-1<0)return FALSE;
mArgIndex--;
return TRUE;
}
inline
BOOL CommandLine::operator++(int /*postFixDummy*/)
{
if(mArgIndex+1>=mBlockCmds.size())return FALSE;
mArgIndex++;
return TRUE;
}
inline
BOOL CommandLine::operator--(int /*postFixDummy*/)
{
if(mArgIndex-1<0)return FALSE;
mArgIndex--;
return TRUE;
}
#endif

BIN
proto/source/CUT.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 B

Some files were not shown because too many files have changed in this diff Show More